Pertanyaan Apa yang salah dengan selalu menjadi root?


Saya punya perasaan ini adalah pertanyaan bodoh, tapi ini adalah sesuatu yang saya ingin tahu untuk sementara.

Saya memiliki VPS dan ini adalah usaha linux besar pertama saya. Saya adalah satu-satunya orang yang memiliki akses ke sana. Pertanyaan saya adalah, apa yang salah dengan hanya login sebagai root sebagai lawan untuk membuat akun dan memberi mereka akses sudo? Jika sudoer dapat melakukan semua yang bisa dilakukan root, lalu apa bedanya? Jika seorang peretas bisa memecahkan kata sandi saya ke akun standar non-root saya, maka dia juga bisa mengeksekusi perintah sudo, jadi bagaimana peretas meretas akun root saya menjadi kurang lebih?


81
2017-08-24 14:23




Saya juga berkomentar bahwa jika Anda tidak terbiasa dengan "Unix Way", ini bukan pertanyaan bodoh. Anda harus mendapatkan bonus karena berpikir untuk mengajukan pertanyaan di tempat pertama sebagai admin Linux baru. - Bart Silverstrim
Dan saya ingin memberi komentar untuk beberapa jawaban. Khususnya yang mengatakan "Anda dapat mengacaukan hal-hal yang menjadi root". Saya tidak berpikir itu intinya ... "rm -rf /" melakukan hal yang sama dengan "sudo rm -rf /". Intinya terletak pada hal-hal seperti "sudo rm" tidak berfungsi, namun "sudo startMyApp pada port rendah" bekerja. - Zlatko
apa yang salah dengan tidak pernah ada? - ostendali


Jawaban:


Jika Anda login sebagai root, Anda dapat dengan mudah menghapus direktori atau melakukan sesuatu yang dalam retrospeksi benar-benar bodoh pada sistem dengan flip jari, sementara sebagai pengguna Anda biasanya harus meletakkan beberapa siklus mental ekstra ke dalam apa yang Anda sedang mengetik sebelum melakukan sesuatu yang berbahaya.

Juga semua program yang Anda jalankan sebagai root sebagai hak istimewa root, yang berarti jika seseorang atau sesuatu membuat Anda menjalankan / mengkompilasi / menelusuri situs web yang berbahaya dan ingin merusak sistem Anda, seperti trojan atau malware lainnya, ia memiliki akses penuh ke sistem dan dapat melakukan apa yang diinginkan, termasuk akses ke port TCP di bawah 1024 (sehingga dapat mengubah sistem Anda menjadi remailer tanpa sepengetahuan Anda, misalnya).

Pada dasarnya Anda seperti meminta masalah yang masuk sebagai diri sendiri dapat mencegah. Saya telah mengenal banyak orang yang akhirnya merasa senang mereka memiliki jaring pengaman di saat-saat kecerobohan.

EDIT: Ada juga masalah root yang paling terkenal, jadi sasaran yang mudah, untuk skrip dan peretasan. Sistem yang menonaktifkan akun dan sebaliknya memaksa pengguna untuk menggunakan sudo berarti bahwa setiap upaya untuk memecahkan root dari ssh atau exploit lokal ke akun tersebut membenturkan kepalanya ke dinding. Mereka harus menebak / meretas kata sandi dan nama pengguna. Ini keamanan melalui ketidakjelasan sampai derajat tetapi sulit untuk membantah bahwa itu tidak menggagalkan sebagian besar serangan skrip kiddie.


71
2017-08-24 14:30



+1 - Menggunakan "sudo" menjadikan program eksekusi sebagai root tindakan nyata. Ini bukan masalah "menghentikan peretasan", ini adalah masalah membiasakan Anda untuk bekerja sebagai pengguna yang tidak memiliki hak istimewa dan membuat permohonan hak istimewa root sebagai tindakan yang dimaksudkan dan terang-terangan. - Evan Anderson
Saya mulai bertanya-tanya apakah Evan benar-benar AI. - Bart Silverstrim
Sudo juga menambahkan jejak audit. Seperti siapa, apa, dan kapan dicatat saat dijalankan sebagai sudo. File log mana dapat bervariasi dengan distro tetapi distro RedHat cenderung menggunakan / var / log / secure dan Ubuntu menggunakan /var/log/auth.log ... Saya tidak yakin apakah ini benar untuk semua distro berbasis Debian. - 3dinfluence
+1 - ini bukan hanya tentang hak untuk membuat barang atau melakukan sesuatu, itu juga tentang hak untuk menghancurkan. Log on sebagai root (atau yang setara pada OS lain dalam hal ini) adalah seperti berjalan di sekitar membawa pistol dengan keselamatan. Anda mungkin tidak pernah secara sengaja menyentuh pemicu itu, tetapi apakah Anda akan memercayai diri sendiri untuk melakukan hal yang sama? - Maximus Minimus
mh: / saya memakai topi koboinya, menjentikkan keselamatan di pistolnya, membuka bir, bergumam dengan gerutuan rendah sesuatu tentang pansy, dan kemudian log in sebagai root. - Kyle Brandt♦


Jika Anda tidak mengizinkan seorang idiot untuk masuk ke server Anda sebagai root, maka jangan selalu jalankan sebagai root sendiri. Kecuali Anda dapat menyerahkan hati mengatakan Anda sudah tak pernah menjadi idiot. Tidak benar-benar? Kamu yakin? :)

Manfaat: mengurangi kemungkinan Anda menjadi root dan idiot secara bersamaan.


29
2017-08-24 14:41



+1 - "Manfaat: mengurangi kemungkinan Anda menjadi root dan idiot secara bersamaan." Saya sangat menyukai ini. - Evan Anderson
+1 untuk filosofi Scott Adams bahwa semua orang adalah idiot. :) Ya, itu berarti Anda dan saya juga. - Ernie
Tentu saja - ini adalah salah satu pertanyaan kunci saya dalam wawancara kerja - kapan terakhir kali Anda mengacau? Setiap orang memiliki, Anda hanya perlu membaca utas di sini tentang "sysadmin fubar" yang paling menghibur atau apa pun. Jika seseorang tidak mau mengakui kesalahan bodoh paling tidak sekali dalam hidup mereka, mungkin ada beberapa alasan mengapa Anda tidak ingin bekerja dengan mereka. - Tom Newton


Alasan utamanya adalah kesalahan. Jika Anda selalu root, typo sederhana mungkin benar-benar mengacaukan sistem. Jika Anda hanya login sebagai root atau menggunakan sudo untuk melakukan hal-hal yang mengharuskan Anda meminimalkan risiko membuat kesalahan yang berbahaya.


9
2017-08-24 14:31





Ketika Anda melakukan root, Anda menjadi malas tentang perizinan, karena Anda memiliki akses ke segala sesuatu sepanjang waktu, Anda tidak peduli ketika hal-hal 777 atau 644 atau apa pun. Jadi jika Anda pernah membiarkan orang lain masuk ke sistem Anda sehingga Anda tidak ingin memiliki akses ke semuanya, tiba-tiba menjadi kesulitan nyata untuk membuat mesin aman untuk digunakan oleh orang lain.


9
2017-08-24 14:38



Ini disebut "busuk akar". - kmarsh
Saya suka istilah itu, "busuk akar". Memang, menjalankan sebagai root sepanjang waktu dapat mengubah mesin * nix menjadi mesin aneh seperti Windows 95 tanpa keamanan multi-user. (Saya ingat mesin SCO, bertahun-tahun yang lalu, di mana setiap pengguna pada aplikasi akuntansi bersama. Menjalankan sebagai root karena "itu membuat masalah izin pergi".> Desah <) - Evan Anderson
Saya ingat mendapatkan penjelasan seperti itu - mereka memiliki alat mailinglist yang berfungsi sebagai root, bersama dengan sendmail. Jawaban saya adalah "Masalah izin pergi untuk para peretas juga." - duffbeer703


Ada beberapa prinsip utama di balik tidak masuk sebagai root: 1) Kata sandi root tidak pernah dikirim melalui jaringan pada saat login 2) Tidak ada cara untuk mengetahui siapa yang melakukan sesuatu jika beberapa pengguna login sebagai akun yang sama (root atau lainnya). 3) Secara tidak sengaja melakukan sesuatu yang 'bodoh'


7
2017-08-24 14:31





Ini lebih untuk perlindungan terhadap diri sendiri sehingga Anda memiliki kesempatan kedua untuk meninjau perintah hak istimewa lebih tinggi yang Anda coba jalankan, analog dengan UAC di Windows. Sangat mudah untuk tidak sengaja melakukan sesuatu seperti itu rm -rf / saat masuk sebagai root.

Selain itu, Anda memiliki ketertelusuran. Ini bukan masalah besar dalam situasi Anda di mana Anda satu-satunya (secara teoritis) mengeluarkan perintah tetapi kemampuan untuk login dan melacak kembali ke individu adalah komponen kunci untuk berbagai bentuk analisis.


3
2017-08-24 14:30



Ketertelusuran sangat penting dalam sistem di mana lebih dari satu orang bekerja sebagai sysadmin. Bukan hanya diinginkan itu dimandatkan oleh rezim regulasi. - APC
Saya melakukan ini pada hari Jumat. alih-alih menghapus "/ dump / folder /" Saya menghapus folder /. Satu backslash berbau busuk mengingatkan saya mengapa kami tidak masuk sebagai root. - oneodd1


Perbedaannya terutama:
bahwa Anda tidak dapat melakukan sesuatu yang buruk secara tidak sengaja.
bahwa kode "jahat" tidak dapat mengambil alih sistem.
Perhatikan: kode jahat tidak selalu berarti bahwa siapa pun sudah memiliki akses ke sistem.


2
2017-08-24 14:30



Saya perhatikan bahwa hari-hari ini, kode jahat biasanya berarti bot spam, yang dapat berjalan sebagai pengguna. - Ernie
Jika Anda memikirkan virus (mencoba menghancurkan sesuatu) atau rootkit, maka itu jauh lebih rumit untuk malware jika Anda bukan root. - StampedeXV


Anda harus selalu menggunakan akun dengan tingkat privilese terendah yang mungkin. Menjalankan sebagai root sepanjang waktu mendorong kebiasaan buruk dan kemalasan yang akan membuat hidup tidak menyenangkan ketika Anda bekerja dengan banyak pengguna atau mengekspos sesuatu ke jaringan publik / semi-publik.

Juga perlu diingat bahwa password cracking hanya satu skenario kompromi - dan bukan skenario yang paling umum juga. Anda lebih cenderung menjadi korban kerentanan browser, atau kerentanan di beberapa daemon yang berjalan di sistem Anda.

Pikirkan tentang kode yang Anda gunakan tanpa berpikir. Misalnya, port Linux Adobe Flash, yang merupakan tumpukan kotoran mengepul yang hanya dapat digunakan di masa lalu yang relatif baru. Menurut Anda, seberapa aman kode itu? Apakah Anda ingin itu dapat menggunakan kontrol penuh sistem Anda?


2
2017-08-24 14:37