Kekhawatiran tentang masuk sebagai root dinilai berlebihan?

16

Untuk linux pribadi di notebook pribadi saya, saya biasanya mengatur lingkungan saya untuk autologin sebagai root bahkan di bawah X atau runlevel yang lebih rendah. Saya menemukan alur kerja saya sangat menyenangkan dan cepat, tanpa perlu repot mengetik suatau sudodiminta oleh keyring atau auth atau sesuatu.

Sejauh ini saya tidak pernah punya masalah dengan itu, jadi mengapa kebanyakan orang panik tentang hal itu? Apakah kekhawatiran itu dilebih-lebihkan? Tentu saja ini mengasumsikan pengguna tahu apa yang mereka lakukan dan tidak terlalu peduli dengan keandalan sistem dan masalah keamanan.

uray
sumber
4
mengapa dijalankan sebagai root? jika Anda benar-benar tidak ingin mengetik sudosaya sarankan mengedit /etc/sudoersdan menambahkan beberapa perintah sebagai nopasswd (tidak semuanya) maka di ~/.bashrc(atau file alias) tambahkan aliases ke sudo command. Ini mungkin masih bukan ide yang baik tetapi akan membatasi kerusakan yang dapat Anda lakukan, atau yang telah Anda lakukan.
xenoterracide
11
Tingkat permusuhan dalam utas ini sedikit mengkhawatirkan; itu pertanyaan yang sah. Ya, menjalankan sebagai root sepanjang waktu adalah ide yang buruk, tetapi tidak perlu membalikkannya
Michael Mrozek
5
@Mrozek: Setuju. Sekarang, saya tidak akan pernah memberikan kata sandi root OP ke sistem apa pun yang saya kendalikan, tetapi menghapus sistem dengan mengetik hal yang salah bisa sangat mendidik. Mungkin tulisan OP "Sejauh ini saya tidak pernah punya masalah dengan itu" akan belajar sesuatu yang bermanfaat, seperti kenyataan bahwa hal-hal dapat terjadi untuk pertama kalinya.
David Thornley
2
Saya pikir ini meringkas mengapa tidak: unix.stackexchange.com/questions/502/…
Alex B
3
Untuk membawa analogi mobil: Ini seperti mengemudi tanpa sabuk pengaman. Mungkin, tetapi berpotensi mematikan.
balikkan

Jawaban:

33

Untuk alasan yang sama mengapa setiap daemon harus memiliki hak minimal. Apache dapat dijalankan sebagai root. Itu dirancang untuk melakukan satu tugas dan tentunya tidak ada hal buruk yang bisa terjadi?

Tetapi anggap apache tidak bebas bug. Bug ditemukan dari waktu ke waktu. Kadang-kadang bahkan bisa eksekusi kode arbitrer atau serupa. Sekarang dengan apache berjalan sebagai root, ia dapat mengakses apa saja - misalnya ia dapat memuat rootkit ke dalam kernel dan menyembunyikan dirinya.

Di sisi lain, menulis rootkit tingkat pengguna sangat sulit. Itu harus menimpa berbagai program (seperti ps) di dalam /home, yang dapat menimbulkan kecurigaan karena ruang disk tambahan yang digunakan. Mungkin tidak tahu konfigurasi yang tepat dan lupa untuk memasukkan misalnya gnome-system-monitorkarena itu mengekspos dirinya sendiri. Itu harus menutupi bash, tcshdan setiap shell yang Anda gunakan (untuk memulai sendiri). Itu harus bekerja dengan konfigurasi yang berbeda daripada 'hanya' mengesampingkan banyak panggilan balik.

Pertimbangkan bahwa belum lama ini ada eksekusi kode arbitrer ditemukan di ... Adobe Reader.

Alasan lainnya adalah kesalahan pengguna. Lebih baik diperingatkan sebelum menghapus seluruh disk dengan satu perintah.

Alasan ketiga adalah cangkang yang berbeda. Root shell harus diinstal pada /jika penyelamatan sistem perlu dilakukan. Kerang pengguna dapat diinstal pada /usr(misalnya pengguna dapat menggunakan zsh).

Alasan selanjutnya adalah bahwa program yang berbeda tidak berfungsi sebagai root. Mereka secara khusus tahu mereka tidak seharusnya, jadi Anda perlu menambal sistem.

Alasan kelima adalah bahwa /rootseharusnya tidak berada di partisi terpisah selagi /homebisa (dan harus). Memiliki /homebantuan terpisah karena berbagai alasan.

JUGA : MENGAPA TIDAK MENGGUNAKAN SEBAGAI PENGGUNA NORMAL. Anda lebih sering tidak perlu memiliki hak root daripada melakukannya. Ini adalah biaya yang sangat kecil untuk keamanan.

Maciej Piechotka
sumber
3
Fakta bahwa, sebagai root, dddapat melakukan apa saja untuk perangkat blok apa pun dalam sistem, dikombinasikan dengan fakta bahwa root mungkin melakukan banyak campur tangan, disengaja dan tidak disengaja, dengan kernel dan hal-hal sistem di / dev dan / proc harus cukup untuk meyakinkan siapa pun untuk tidak menjalankan root kecuali diperlukan.
LawrenceC
29

Anda juga bisa mengendarai sepeda motor telanjang, dan tidak ada yang terjadi. Tapi saya yakin Anda akan merasa lebih baik jika mengalami ketika Anda menabrak sepeda ...

nzwulfin
sumber
7
mungkin, tetapi pikirkan perasaan Anda akan mendapatkan sisa waktu!
Sirex
12

Terlepas dari titik keamanan yang jelas, jelas Anda tidak pernah menyembunyikan sistem Anda dengan salah ketik perintah di shell atau lapsus. Jika itu terjadi, Anda akan mengerti mengapa orang-orang panik tentang hal itu. Dan kemudian Anda akan menangis ngeri, dan juga menyadari bahwa itu adalah pengalaman yang sangat mendidik, tetapi Anda tetap tidak mendapatkan sistem Anda kembali.

Suatu pemikiran: jika Anda ditanya kata sandi root selama penggunaan normal sistem Anda (mis. Tidak menginstal paket atau tugas administrasi sistem lainnya), Anda salah melakukannya .

axel_c
sumber
+1 untuk mengingatkan saya pada beberapa pengalaman lama. Atau haruskah itu -1 untuk membawa mereka kembali?
David Thornley
5
Saya tidak pernah mengerti mengapa orang percaya menggunakan sudo mencegah perintah salah ketik. Sistem terakhir yang saya sembunyikan beberapa tahun yang lalu adalah sudo rm -rf / dir / job.
Sirex
4

Tidak, ini tidak berlebihan. Dalam praktiknya hal itu paling tidak dihargai. :-)

Tim kecil saya di tempat kerja, misalnya, berbagi mesin RHEL untuk pekerjaan pengembangan: membangun barang, menguji dll. Setiap orang menggunakan akun pengguna individual, tetapi kami juga membagikan kata sandi root karena orang membutuhkan ini dari waktu ke waktu untuk tugas sysadmin cepat. Ini juga telah mengakibatkan kami berhasil menyemprot OS beberapa kali dalam umur yang pendek. Seseorang membangun versi libc tertentu menghapus sistem libc dengan konyolrmdoa. Dalam insiden aneh lainnya, tabel partisi hilang. (Ok, ini tidak ada hubungannya dengan hak istimewa.) Sisa tim diblokir sampai kerusakan diperbaiki. Salah satu solusinya adalah meminta seseorang secara sukarela untuk mengambil tugas sysadmin. Sampai saat ini kami belum terlalu peduli, kecuali untuk memungkinkan orang mempelajari pelajaran mereka: kita semua memerlukan beberapa tanda gigi di ujung belakang kita, dan ini adalah tanda gigi yang relatif murah.

Yang benar-benar ingin tahu mungkin ingin mengikuti prinsip hak istimewa , dan membaca makalah Ken Thompson, "Reflections On Trusting Trust." ("Moralnya jelas. Anda tidak dapat mempercayai kode yang tidak Anda buat sendiri sepenuhnya.")

sajith
sumber
3

Mengambil komentar Anda untuk jawaban lain

tetapi linux adalah tentang kebebasan, termasuk kebebasan untuk menghancurkan data Anda sendiri, privasi dan keamanan

Bahkan memaksa orang lewat sudo, Linux menawarkan kebebasan ini. Seluruh argumen keamanan yang ingin Anda hindari ada di sana untuk melindungi Anda dari berbagai hal , bukan? (Baca: program jahat atau program yang dikendalikan oleh orang jahat).

Anggap saja sebagai sabuk pengaman. Butuh satu detik untuk digunakan. Bisa menyelamatkan hidupmu dari orang idiot lain di luar sana (juga dirimu sendiri).

Jika Anda tidak ingin mengetikkan kata sandi sepanjang waktu, sudoedit /etc/sudoerstetapi jika Anda terus menjalankannya sebagai root, suatu hari Anda mungkin akan menjalankan sesuatu yang mengganggu sistem Anda dan semua data Anda.

Jika Anda senang mengetahui bahwa sesuatu yang jelek seperti Flash dapat memformat ulang komputer Anda, tidak ada orang di sini yang peduli dengan apa yang Anda lakukan. Jalankan sebagai root.

Oli
sumber
2
Bukan hanya program jahat, yang bermasalah juga (misalnya ada bug di sistem kernel build pada satu titik yang menyiram sistem Anda jika Anda mengkompilasi kernel Anda sebagai root)
Spudd86
2

Mengapa tidak menjalankan Damn Vulnerable Linux sebagai sistem utama Anda saat Anda sedang melakukannya. Jika Anda akan mengabaikan keamanan sistem Anda mungkin juga mengabaikan semua itu ...

xenoterracide
sumber
Secara teknis komputer dengan root sebagai pengguna utama dapat diamankan secara teoritis ...
Maciej Piechotka
3
@ Maciej satu-satunya komputer yang aman dicabut, terbungkus beton di dasar danau.
xenoterracide
Seperti yang ditunjukkan Mitnick seseorang bisa mendapatkannya di luar danau, hancurkan beton dan pasang (oh. Dia hanya mengatakan bahwa seseorang dapat mencolokkan komputer yang tidak terhubung menggunakan sosioteknik tetapi prinsipnya sama). Saya mencoba untuk berhati-hati menggunakan 'secara teknis' dan 'secara teoritis' - juga kunci buruk lebih baik daripada tidak ada kunci. Sebagai contoh, saya menganggap sistem saya saat ini cukup aman meskipun tidak ada SELinux;)
Maciej Piechotka
@Marciej well security adalah tentang analisis biaya / risiko. Anda tidak pernah menaruh lebih banyak keamanan di sekitar sesuatu selain dari itu sesuatu itu layak.
xenoterracide
1
@ Marsciej dan jika tidak ada artinya maka tidak ada gunanya menempatkan keamanan di sana, pada saat itu tidak ada masalah kerentanan.
xenoterracide
1

Anda sedang berbicara tentang OS yang merupakan upaya kolaboratif dari banyak orang. Jika Anda menjalankan apa pun kecuali perangkat lunak yang stabil, Anda DAPAT aman untuk sementara waktu.

Seperti yang disebutkan sebelumnya, Anda akan terkejut betapa kecilnya benda dapat menghancurkan seluruh HD Anda. Pada tahun pertama saya, saya mencoba menjalankan di root banyak karena, baik, pada masa Fedora-core 3, tidak ada banyak cara mewah untuk admin sistem Anda dari pengguna.

Pada saat itu, saya membuat edit xorg kecil tanpa membuat cadangan, karena saya pikir itu tidak akan menyakitkan. Desktop hilang. Kemudian saya mencoba memperbaikinya secara manual, tetapi tidak tahu persis apa yang telah saya lakukan. Kemudian, saya berpikir bahwa mungkin saya bisa menginstal ulang driver dan desktop saya, tetapi secara tidak sengaja memutus ethernet saya, karena itu juga nvidia.

Saat menjalankan Arch untuk pertama kalinya, saya mengabaikan peringatan untuk membuat pengguna dan berlari sebagai admin untuk sementara waktu. Saya menginstal paket dari AUR yang saya butuhkan dan setelah saya reboot, seluruh instal saya rusak.

Karena saya sudah di root, memperbaiki masalah ini menjadi jauh lebih buruk daripada yang seharusnya.

Anda mungkin menyimpulkan saya hanya tidak kompeten. Tetapi seperti yang disebutkan lainnya ... mengetik "sudo" adalah harga kecil untuk membayar ketenangan pikiran.

EDIT: Oh ... dan program-program tertentu, seperti WINE, secara tegas tidak seharusnya dijalankan di lingkungan root. http://wiki.winehq.org/FAQ#head-96bebfa287b4288974de0df23351f278b0d41014

Garrett
sumber
1

Alasan keamanan - kerentanan daemon atau skrip yang menargetkan Linux akan memiliki kekuatan Sysadmin atas sistem Anda.

Berjalan sebagai pengguna yang sederhana DAN menggunakan sudo jauh berbeda dalam hal keamanan. Firefox saya berjalan sebagai pengguna saya, jadi kerentanan Firefox apa pun hanya akan mengenai akun saya. Tidak ada lagi.

lucabotti
sumber
0

Saya setuju dengan Maciej untuk masalah keamanan & memiliki kendali atas kekuatan tertentu. Juga, karena Anda adalah pemilik sistem Anda, Anda dapat menonaktifkan fungsi ini jika Anda inginkan;) itu pilihan Anda.

Abhishek
sumber
-4

Saya tidak dapat melihat masalah besar saat masuk sebagai root untuk sesi normal, selama Anda tidak melakukan hal bodoh.

Saya tidak melakukannya secara pribadi, karena, kadang-kadang saya melakukan sesuatu yang konyol. Saya tidak pernah memperhatikan bahwa sesuatu yang bodoh yang saya lakukan berpotensi menjadi masalah besar, tetapi saya tidak cukup sombong untuk berpikir bahwa saya tidak akan pernah melakukan sesuatu yang benar-benar bodoh.

Neal
sumber
8
apakah menggunakan browser web berarti melakukan sesuatu yang bodoh?
xenoterracide
4
@ xenoterracide: Merupakan tindakan bodoh jika Anda login sebagai root, saya katakan.
David Thornley
2
@ David Saya tahu itu;) itulah intinya
xenoterracide