Apakah file pengguna masih pribadi ketika dua pengguna sudo ada di Ubuntu?

31

Saya membagikan PC Ubuntu pribadi saya dengan salah satu kolega saya.

Saya membuat pengguna lain dengan kata sandi yang berbeda (tentu saja dia tahu) dan menambahkannya ke sudoerdaftar.

Mengingat bahwa ada dua sudopengguna dalam satu sistem Ubuntu:

  • Apakah file pribadi (ditentukan oleh pemilik dan izin) dari salah satu dari pengguna ini masih pribadi?

  • Bisakah saya memodifikasi file kolega saya melalui sudoperintah, bahkan sudo su, atau sebaliknya?

Jizhou Huang
sumber
6
Ubuntu memungkinkan untuk membuat folder rumah terenkripsi saat membuat pengguna. Mungkin itulah fitur yang dibutuhkan di sini.
Thorbjørn Ravn Andersen
Terkait:   Apakah mungkin untuk menyandera server jika seseorang diberikan akses root?
G-Man Mengatakan 'Reinstate Monica'
@ ThorbjørnRavnAndersen Setelah saya mengenkripsi folder beranda, apakah saya masih dapat mengakses file di dalam senyaman yang saya lakukan sebelumnya?
Jizhou Huang
3
Mengapa Anda tidak menghapus akses sudo dari pengguna lain, dan Anda menjadi administrator tunggal? Apa pun alasan yang dibutuhkan pengguna lain untuk sudo, Anda dapat memperbaikinya sehingga mereka tidak perlu sudo (pemasangan, pencetakan, pembaruan otomatis, dll.)
Xen2050

Jawaban:

51

Jika kolega Anda ada dalam daftar sudoers, ia root sama seperti Anda jika dia menginginkannya (dan dia juga bisa meniru Anda), dan kemudian dia bisa melihat semuanya.

Ini adalah pengaturan terburuk yang dapat Anda miliki jika Anda menginginkan privasi pengguna. Anda harus benar-benar membaca bagaimana manajemen pengguna di Linux bekerja. Berikut adalah beberapa artikel yang dapat Anda mulai dengan:

Dan bahkan jika seseorang memiliki akses fisik ke mesin yang dimaksud, tidak ada privasi, dia bisa drop saat boot ke shell root dan melihat semuanya tidak peduli apa, dan jika ini akan dilindungi kata sandi dia masih bisa menggunakan stik USB dan masuklah lewat jalan ini.

Jadi hal terbaik dalam hal ini adalah manajemen pengguna yang tepat, kata sandi untuk root, dan drive terenkripsi dan / atau direktori home terenkripsi.

Videonauth
sumber
2
Meskipun pastikan sudo -itidak bekerja :)
Wilf
3
Sementara konfigurasi sudoers yang paling sederhana dan paling umum adalah untuk memungkinkan daftar pengguna untuk memiliki hak akses root sementara, sudoers memungkinkan untuk kontrol akses berbutir halus. Misalnya, Anda dapat menentukan bahwa pengguna hanya dapat menjalankan perintah tertentu sebagai root. Jika Anda berhati-hati untuk hanya mengizinkan pengguna untuk mengeksekusi perintah yang tidak mengizinkan membuat root shell atau membuat akses root persisten di luar ruang lingkup perintah yang ingin Anda izinkan, Anda dapat menghindari memberi mereka akses root secara umum.
bgvaughan
19

Alternatif sederhana adalah menyimpan data pribadi Anda dalam file terenkripsi (bisa berupa file arsip tar, yang Anda enkripsi, misalnya dengan gpg). Anda harus ingat untuk menimpa dan menghapus file teks yang jelas setelah melihatnya.

Alternatif lain untuk Anda semua yang berbagi komputer dan akses sudo (root) adalah dengan menggunakan rumah terenkripsi dan swap terenkripsi.

Tetapi ini tidak akan membantu, jika Anda masuk pada saat yang sama. Sebagai soal fakta Anda harus me-reboot komputer untuk menyingkirkan file Anda dalam format teks yang jelas bahkan dengan rumah terenkripsi.


Secara umum keamanan sangat sulit, dan sistem pengguna tunggal dengan disk terenkripsi (LVM dengan enkripsi) akan menjadi cara paling sederhana untuk menjaga semuanya tetap aman.

  • Jangan menyimpan data pribadi yang sensitif di komputer bersama
  • Jangan menyimpan data pribadi di komputer milik majikan Anda
sudodus
sumber
3
Wadah dm-crypt / LUKS tidak perlu khawatir menimpa file cleartext (kecuali file & swap sementara aplikasi apa pun), atau direktori ~ / .Private terenkripsi tunggal denganecryptfs-mount-private
Xen2050
6
Ini bahkan tidak melindungi Anda dari serangan pelayan jahat: pengguna sudo lainnya dapat mengubah sistem untuk menipu Anda agar memberi mereka frasa sandi Anda. Pertanyaan semacam itu harus dibaca sebagai "Saya mencurigai rekan saya sebagai mata-mata Rusia. Haruskah saya memberinya hak sudo di komputer saya?"
sleblanc
Bagaimana dengan mesin virtual dengan disk image terenkripsi? blogs.oracle.com/scoter/…
leftaroundabout
1
Jika Anda membutuhkan privasi, Anda memerlukan sistem pengguna tunggal dengan kata lain tidak ada pengguna lain, jelas tidak ada pengguna sudo lainnya. Ubuntu LVM dengan sistem enkripsi rentan terhadap serangan pelayan jahat. Masih saya pikir ini lebih baik daripada alternatif mudah lainnya termasuk rumah terenkripsi. Tentu saja, jika Anda mau, Anda dapat memiliki disk terenkripsi dan rumah terenkripsi serta satu sistem pengguna, untuk mempersulit para penyusup, misalnya menurut tautan ini, iso.qa.ubuntu.com/qatracker/milestones / 363 / builds / 126342 /…
sudodus
Yang perlu dilakukan oleh pengguna root baru adalah menginstal rootkit ruang kernel seperti diamorphine. Bahkan tidak perlu repot-repot maria main-main dengan LD_PRELOADperetasan userland : cukup buat keystroke logger sederhana, dan lemparkan ke beberapa skrip python untuk melakukan segmentasi K-means fuzzy berdasarkan waktu / pengelompokan pengetikan, dan beberapa penguraian teks, dan selesai Sekarang Anda memiliki kata sandi untuk pengguna dan kemungkinan bisa mendapatkan data pribadi mereka.
Cloud
8

Setelah Anda bisa mendapatkan roothak akses (misalnya menggunakan sudo, su, dll).
Anda memiliki akses penuh ke setiap file di sistem.

Jadi kedua pengguna yang memiliki sudoizin, dan dapat rootmenggunakan sudo bashakan memiliki akses penuh ke setiap file pada sistem

Menurut T&J ini di SE-Security: Anda mungkin dapat memodifikasi SELinux(yang bukan Ubuntu) untuk membatasi rootakses:

Jika pertanyaan Anda adalah "bisakah saya dengan mudah dan aman melakukan ini sekarang?" jawabannya adalah tidak. Jika jawaban Anda adalah "Saya siap belajar tentang SELinux, turun dan kotor dengan distribusi saya dan tahan dengan banyak hal yang tidak berfungsi" jawabannya adalah mungkin untuk membatasi root lebih dari instalasi rata-rata Anda. Yang mengatakan, ini tidak dengan cara apa pun membuat Anda kebal terhadap eksploitasi - itu tidak membuat tidak mungkin bagi pengguna untuk menghindari kontrol akses ekstra ini baik dalam perangkat lunak maupun fisik.

Yaron
sumber
2
Anda dapat membatasi root dengan apparmor dan selinux, namun, seseorang dengan akses root penuh atau akses melalui shell pemulihan atau CD langsung, dengan sistem (apparmor atau selinux) dapat mengubahnya kembali.
Panther
1
Bahkan jika Anda menggunakan SELinux atau semacamnya untuk membatasi apa yang dapat dilakukan root secara langsung, mereka mungkin masih dapat memodifikasi utilitas yang dijalankan sendiri oleh pengguna. Dan jika mereka seharusnya dapat menjalankan upgrade apa pun, mereka akan memerlukan akses untuk memodifikasi binari pada sistem ...
ilkkachu
5

Untuk membuat apa yang jawaban lain sudah dinyatakan dengan sangat jelas: Pengguna lain itu tidak hanya "melakukan root sebanyak Anda" (jawaban Videonauth), mereka juga dapat menjadi Anda (beralih ke akun pengguna Anda) .

Ini karena dengan hak pengguna super, seseorang dapat beralih ke akun apa pun.

Anda mungkin tahu

sudo su

yang merupakan salah satu opsi untuk membuka shell root jika root tidak memiliki set kata sandi (jadi Anda tidak bisa langsung masuk sebagai root secara langsung).

sukependekan dari "switch user". Pengguna apa yang dituju? Tidak ada yang dinyatakan, kan? Tetapi dari halaman manual, kita dapat belajar bahwa:

Diundang tanpa nama pengguna, su default untuk menjadi superuser.

Jadi ini efektif

sudo su root

jika Anda tidak mengganti nama rootmenjadi sesuatu yang lain.

Jika Anda baru saja menjalankan su <someuser>, Anda akan dimintai kata sandi. Jadi jika Anda menjalankan su root, Anda diminta untuk memasukkan kata sandi root (yang secara default tidak ada di Ubuntu, jadi Anda tidak bisa masuk (perhatikan bahwa tidak ada kata sandi yang disetel berarti tidak ada cara masuk melalui kata sandi yang berbeda dari kata sandi menjadi string kosong)). Tetapi jika Anda menjalankan sudo su root, Anda akan diminta kata sandi Anda sendiri. Dan Anda hanya diminta melakukannya sudo. Setelah sudomenerima kata sandi Anda, ia menjalankan perintah yang diterimanya sebagai parameter dengan hak superuser. Karena seseorang dapat beralih ke akun mana pun ketika memiliki hak pengguna super, prompt kata sandi tidak diperlukan.

Jadi dengan mengeksekusi

sudo su <yourusername>

, sudoer lainnya dapat masuk seperti Anda.

UTF-8
sumber
+1; Ya saya tidak menyebutkan ini karena tidak menyebabkan kebingungan, bidang melindungi mesin dengan benar lebar dan penuh dengan batu yang dapat Anda perebutkan. Masih bagus ditambahkan dengan apa yang sudah diberikan sebagai jawaban.
Videonauth
Tidak yakin, tetapi tidak sudo suselalu default ke UID 0 dan GUID 0? Jika ya, tidak masalah bagaimana Anda menamai 'root'.
Videonauth
@Videonauth Anda benar dengan kalimat kedua dalam komentar kedua Anda. Namun, ini adalah alasan utama mengapa saya memasukkan kalimat yang Anda kritik. Jika Anda mengganti nama rootmenjadi john, sudo susekarang setara dengan sudo su johndan tidak lagi sudo su root.
UTF-8
3

Dimungkinkan untuk membatasi program yang dapat dijalankan menggunakan eskalasi hak istimewa sudo dengan mengedit file sudoers ( /etc/sudoers).

Lihat jawaban yang diterima untuk pertanyaan ini pada Pengguna Super untuk rincian lebih lanjut dan juga di sini di Unix dan Linux . Lihat jawaban oleh slm untuk saran tentang pembatasan hak istimewa di /etc/sudoers.

Periksa juga manhalaman sudoers dengan mengetik man sudoersdan jangan lupa untuk mengujinya. Ingat bahwa dengan akses sudo yang tidak dikekang, pengguna dapat sepenuhnya meniru pengguna lain. misalnya, jika pengguna foomenjalankan perintah

sudo exec su - bar

mereka kemudian dapat bertindak sebagai pengguna bar, dengan semua hak istimewa pengguna itu.

perayu
sumber
6
Perhatikan bahwa sudoersbaris spesifik yang ditunjukkan dalam jawaban slm dan mtak tidak berfungsi untuk memberikan kemampuan untuk melakukan beberapa tindakan dan bukan yang lain, karena mudah untuk menggunakannya untuk mengeksekusi perintah apa pun . (Lihat komentar pada masing-masing jawaban tersebut untuk penjelasan terperinci tentang mengapa.) Jawaban ini mungkin tidak sepenuhnya salah karena kadang - kadang memungkinkan untuk memungkinkan pengguna menggunakan sudomenjalankan perintah tertentu sebagai root tanpa secara efektif menjadikannya administrator. Tetapi sangat sulit untuk memperbaikinya.
Eliah Kagan
@EliahKagan Benar. Penting untuk memastikan Anda tidak membiarkan mereka mencapai mekanisme yang memungkinkan mereka menjalankan perintah apa pun. Tentu saja, itu tergantung pada tingkat kepercayaan yang Anda tempatkan pada orang lain.
1
@EliahKagan Oleh karena itu nasihat untuk membaca halaman manual dan menguji implementasi apa pun. Membatasi pengguna dengan hak istimewa sudo bisa dilakukan. Namun seperti yang Anda tunjukkan itu bukan solusi yang sepenuhnya aman dan beberapa tingkat kepercayaan harus diberikan kepada pengguna yang diberi hak sudo. Menarik untuk melihat downvotes untuk jawaban yang merekomendasikan penggunaan mekanisme (entri file sudoers) yang dirancang khusus untuk tujuan membatasi ruang lingkup perintah sudo.
perayu
Saya pikir ini bukan tentang rekomendasi untuk menggunakan mekanisme build in, jadi biarkan saya sampai pada titik kritik konstruktif yang dapat saya berikan kepada Anda untuk jawaban Anda. 1) Ini berisi beberapa kesalahan ketik dan tidak diformat dengan baik dan terlihat aneh ketika Anda membacanya, yang dengan sendirinya dapat diperbaiki dengan mudah. 2) Anda menunjuk ke jawaban lain yang diberikan di luar Ask Ubuntu , di sini Anda harus mengambil bagian-bagian penting sebagai tanda kutip dan mempostingnya di sini, menjadikan tautan Anda sebagai bagian dari tanda kutip untuk menunjuk ke sumber yang telah Anda ambil dari mana. Semoga ini bisa membantu meningkatkan jawaban Anda.
Videonauth
Dan karena saya sudah kehabisan karakter dalam komentar saya sebelumnya: 3) Anda bisa masuk sedikit lebih dalam penjelasan, tunjukkan peringatan @EliahKagan disebutkan.
Videonauth
0

Jawaban sebelumnya tidak berlaku sepenuhnya, jika Anda menandai encrypt home foldersaat menginstal Ubuntu. Ini menjamin folder rumah terenkripsi untuk setiap pengguna, meskipun demikian root tidak dapat membaca data tanpa kata sandi yang tepat dari pengguna / pemilik folder rumah tersebut. Rekan kerja Anda perlu mengubah kata sandi Anda untuk membaca file, yang akan diperhatikan.

Dan tentu saja orang-orangnya benar, bahwa berbagi mesin dengan data berharga atau sensitif di atasnya dan di atas semua itu akses root dengan kolega, bukanlah ide yang baik.

Bergantung pada nilai data ini, saya sarankan untuk meminta Anda memiliki mesin.

s1mmel
sumber
1
Ini mungkin tidak menghalangi pengguna root dari melakukan "su -" atau manuver serupa segera setelah "korban" masuk dan memiliki drive terenkripsi terpasang .... mungkin juga ada skrip cron atau pemicu lain menunggu untuk itu terjadi. Juga, pengguna root dapat dengan mudah mengganti biner yang menangani input kata sandi untuk membuka kunci direktori home terenkripsi dengan versi yang menyimpan kata sandi cleartext, dan menunggu. Mekanisme keamanan apa pun yang menghentikan serangan seperti itu masih bisa diungkit dengan mengubah beberapa biner yang akan digunakan korban untuk sesuatu yang sesuai keinginan Anda.
rackandboneman
5
Saya downvoting jawaban ini sebagai direktori home terenkripsi hanya membantu jika Anda saat ini tidak masuk. Segera setelah Anda login data Anda didekripsi dan tersedia untuk pengguna lain dengan akses sudo.
Panther
2
Tetapi mengapa mereka harus begitu? Bahkan jika login bersamaan tidak pernah dilakukan dari jarak jauh (misalnya, SSH) atau dengan konsol virtual, tidak bisakah dua pengguna login secara grafis pada saat yang sama , dan beralih di antara? Saya menggunakan Lubuntu (yang memiliki LXDE) dan saya tidak pernah login secara grafis dengan beberapa pengguna secara bersamaan, tetapi kesan saya adalah bahwa lebih banyak lingkungan desktop yang kaya fitur telah mendukung ini selama beberapa tahun sekarang dan mengaktifkannya secara default. Apakah saya salah tentang hal itu? Atau, apakah file tidak lagi didekripsi dan dibaca oleh root ketika layar dikunci?
Eliah Kagan
2
IRRC kunci enkripsi pengguna disimpan secara terbuka pada mesin untuk memberikan enkripsi dan dekripsi, sehingga sudo su - <username>yang tidak memerlukan kata sandi pengguna lain, biasanya akan berhasil mendekripsi direktori pengguna lain. Tapi saya bisa saja salah di sini, perlu mengujinya dalam VM dan akan melakukannya nanti. Bagaimanapun juga, 99% dari semua kasus adalah sebagai berikut: "Jika saya memiliki akses fisik ke mesin Anda, Anda disemprot!".
Videonauth
1
Pengguna super dapat mengubah prosedur login untuk mencatat nama pengguna dan kata sandi yang dilihatnya. Tunggu hingga pengguna lain masuk dan masalah terpecahkan.
Stig Hemmer