TL; DR: Lakukan hal-hal sebagai root hanya saat Anda harus. sudo
membuat ini sangat mudah. Jika Anda mengaktifkan login root, Anda masih dapat mengikuti aturan ini, Anda hanya perlu berhati-hati untuk melakukannya. Meskipun mengaktifkan login root sebenarnya tidak aman jika dilakukan dengan benar, Anda tidak perlu mengaktifkan login root karena Anda sudah melakukannya sudo
.
Sebenarnya ada dua pertanyaan terkait di sini.
- Mengapa masuk log sebagai root untuk penggunaan komputer sehari-hari seseorang (browsing web, email, pengolah kata, game, dll.) Itu buruk?
- Mengapa Ubuntu default untuk menonaktifkan login root sama sekali dan menggunakan
sudo
dan polkit untuk memungkinkan administrator untuk menjalankan perintah tertentu sebagai root?
Mengapa tidak menjalankan semuanya sebagai root, sepanjang waktu?
Sebagian besar jawaban lain membahas hal ini. Turun ke:
- Jika Anda menggunakan kekuatan root untuk tugas-tugas yang tidak memerlukannya, dan Anda akhirnya melakukan sesuatu yang tidak ingin Anda lakukan, Anda bisa mengubah atau merusak sistem Anda dengan cara yang tidak Anda inginkan.
- Jika Anda menjalankan program sebagai root ketika Anda tidak perlu, dan itu berakhir melakukan sesuatu yang Anda tidak bermaksud untuk itu untuk melakukan - misalnya, karena kerentanan keamanan atau bug lain - itu bisa mengubah atau bahaya sistem Anda dengan cara yang tidak Anda inginkan.
Memang benar bahwa bahkan tanpa melakukan hal-hal sebagai root, Anda dapat menyebabkan kerusakan. Misalnya, Anda dapat menghapus semua file di direktori home Anda sendiri, yang biasanya mencakup semua dokumen Anda, tanpa berjalan sebagai root! (Semoga Anda memiliki cadangan.)
Tentu saja, sebagai root, ada cara tambahan untuk secara tidak sengaja menghancurkan data yang sama. Misalnya, Anda bisa menentukan of=
argumen yang salah pada dd
perintah dan menulis data mentah di atas file Anda (yang membuatnya lebih mudah untuk pulih daripada jika Anda hanya menghapusnya).
Jika Anda satu-satunya orang yang menggunakan komputer Anda, kerusakan yang dapat Anda lakukan hanya sebagai root mungkin tidak benar-benar lebih tinggi daripada kerusakan yang dapat Anda lakukan dengan hak istimewa pengguna biasa. Tapi itu masih belum ada alasan untuk memperluas risiko Anda dengan memasukkan cara - cara tambahan mengacaukan sistem Ubuntu Anda.
Jika berjalan dengan akun pengguna non-root mencegah Anda melakukan kontrol atas komputer Anda sendiri, maka ini tentu saja merupakan tradeoff yang buruk . Tetapi tidak - kapan saja Anda benar-benar ingin melakukan tindakan sebagai root, Anda dapat melakukannya dengan sudo
dan metode lainnya .
Mengapa tidak memungkinkan untuk masuk sebagai root?
Gagasan bahwa kemampuan untuk login sebagai root pada dasarnya tidak aman adalah mitos. Beberapa sistem memiliki akun root diaktifkan secara default; sistem lain menggunakan sudo
secara default, dan beberapa dikonfigurasikan dengan keduanya.
- Sebagai contoh, OpenBSD , yang secara luas dan masuk akal dianggap sebagai OS tujuan umum paling aman di dunia, dikirimkan dengan akun root yang diaktifkan untuk login lokal berbasis kata sandi.
- OS terhormat lainnya yang melakukan ini termasuk RHEL , CentOS , dan Fedora .
- Debian (dari mana Ubuntu berasal ) memiliki pengguna memutuskan pendekatan mana yang akan dikonfigurasi, selama instalasi sistem.
Tidak salah secara objektif memiliki sistem di mana akun root diaktifkan, asalkan
- Anda masih hanya menggunakannya saat Anda benar-benar perlu, dan
- Anda membatasi akses ke sana dengan tepat.
Seringkali pemula bertanya bagaimana cara mengaktifkan akun root di Ubuntu. Kita seharusnya tidak menyembunyikan informasi ini dari mereka, tetapi biasanya ketika orang bertanya ini karena mereka berada di bawah kesan keliru bahwa mereka perlu mengaktifkan akun root. Sebenarnya, ini hampir tidak pernah diperlukan, jadi ketika menjawab pertanyaan seperti itu, penting kami menjelaskannya. Mengaktifkan akun root juga membuatnya mudah terlena dan melakukan tindakan sebagai root yang tidak memerlukan hak akses root. Tetapi ini tidak berarti mengaktifkan akun root dengan sendirinya tidak aman.
sudo
mendorong dan membantu pengguna menjalankan perintah sebagai root hanya saat mereka perlu. Untuk menjalankan perintah sebagai root, ketik sudo
, spasi, lalu perintah. Ini sangat nyaman, dan banyak pengguna dari semua tingkat keterampilan lebih suka pendekatan ini.
Singkatnya, Anda tidak perlu mengaktifkan login root karena sudah sudo
. Tetapi selama Anda menggunakannya hanya untuk tugas administratif yang memerlukannya, ini sama amannya untuk mengaktifkan dan masuk sebagai root, asalkan hanya dengan cara-cara ini :
- Secara lokal, dari konsol virtual non-grafis .
- Dengan
su
perintah itu, saat login dari akun lain.
Namun, risiko keamanan tambahan yang besar muncul jika Anda masuk sebagai root dengan cara-cara ini:
Secara grafis. Saat Anda masuk secara grafis, banyak hal berjalan untuk menyediakan antarmuka grafis, dan Anda akan menjalankan lebih banyak aplikasi sebagai root untuk menggunakan antarmuka itu untuk apa saja. Ini bertentangan dengan prinsip hanya menjalankan program sebagai root yang benar-benar membutuhkan hak akses root. Beberapa program ini mungkin mengandung bug, termasuk bug keamanan.
Selain itu, ada alasan non-keamanan untuk menghindari ini. Masuk secara grafis sebagai root tidak didukung dengan baik - seperti yang disebutkan oleh loevborg , pengembang lingkungan desktop dan aplikasi grafis tidak sering mengujinya sebagai root. Bahkan jika mereka melakukannya, masuk ke lingkungan desktop grafis sebagai root tidak mendapatkan pengujian alfa dan beta dunia nyata oleh pengguna, karena hampir tidak ada yang mencobanya (untuk alasan keamanan yang dijelaskan di atas).
Jika Anda perlu menjalankan aplikasi grafis tertentu sebagai root, Anda dapat menggunakangksudo
atau sudo -H
. Ini menjalankan jauh lebih sedikit program sebagai root daripada jika Anda benar-benar masuk secara grafis dengan akun root.
Jarak jauh. The root
akun berlaku bisa melakukan apa saja, dan memiliki nama yang sama di hampir setiap sistem Unix-seperti. Dengan masuk sebagai root melalui ssh
atau mekanisme jarak jauh lainnya, atau bahkan dengan mengkonfigurasi layanan jarak jauh untuk memungkinkannya , Anda membuatnya lebih mudah untuk penyusup, termasuk skrip otomatis dan malware yang berjalan di botnet, untuk mendapatkan akses melalui kekuatan kasar, serangan kamus (dan mungkin beberapa bug keamanan).
Boleh dibilang risikonya tidak terlalu tinggi jika Anda hanya mengizinkan login root berbasis kunci , dan bukan kata sandi .
Secara default di Ubuntu, baik login root grafis atau login jarak jauh melalui SSH tidak diaktifkan, bahkan jika Anda mengaktifkan login sebagai root . Artinya, bahkan jika Anda mengaktifkan login root, itu masih hanya diaktifkan dengan cara yang cukup aman.
- Jika Anda menjalankan server ssh di Ubuntu dan belum berubah
/etc/sshd/ssh_config
, itu akan berisi baris PermitRootLogin without-password
. Ini menonaktifkan login root berbasis kata sandi, tetapi memungkinkan login berbasis kunci. Namun, tidak ada kunci yang dikonfigurasi secara default, jadi kecuali Anda sudah mengaturnya, itu juga tidak akan berfungsi. Selain itu, login root jarak jauh berbasis kunci jauh lebih buruk daripada login root jarak jauh berbasis kata sandi, sebagian karena tidak membuat risiko serangan kasar dan serangan kamus.
- Meskipun defaultnya harus melindungi Anda, saya pikir itu masih merupakan ide bagus untuk memeriksa konfigurasi ssh Anda, jika Anda akan mengaktifkan akun root. Dan jika Anda menjalankan layanan lain yang menyediakan login jarak jauh, seperti ftp, Anda harus memeriksanya juga.
Kesimpulannya:
- Lakukan hal-hal sebagai root hanya saat Anda perlu;
sudo
membantu Anda melakukan itu, sambil tetap memberi Anda kekuatan penuh root kapan pun Anda inginkan.
- Jika Anda memahami cara kerja root dan bahaya menggunakannya secara berlebihan, mengaktifkan akun root tidak benar-benar bermasalah dari perspektif keamanan.
- Tetapi jika Anda mengerti itu, Anda juga tahu bahwa Anda hampir pasti tidak perlu mengaktifkan akun root .
Untuk informasi lebih lanjut tentang root dan sudo
, termasuk beberapa manfaat tambahan sudo
yang belum saya bahas di sini, saya sangat merekomendasikan RootSudo di wiki bantuan Ubuntu.