Root & Sudo di Ubuntu - bag.1 (Pengenalan)

|

Latar Belakang
Pada Linux (dan Unix pada umumnya), ada superuser, bernama root. Di Windows root setara dengan Administrator. Superuser dapat melakukan apa-apa dan semuanya, dan dengan demikian melakukan pekerjaan sehari-hari sebagai superuser dapat berbahaya. Anda dapat mengetik perintah yang salah dan merusak sistem. Idealnya, Anda berjalan sebagai pengguna (user) yang hanya mempunyai hak yang diperlukan untuk kegiatan yang anda sedang kerjakan. Dalam beberapa kasus, tentu saja dibutuhkan root, tetapi sebagian besar waktu anda, anda akan bekerja sebagai user biasa.

Secara default, root password account terkunci di Ubuntu. Ini berarti Anda tidak dapat login sebagai root secara langsung atau menggunakan perintah “su” untuk menjadi “root”. Namun, selama account root ini secara fisik ada dan tersedia, maka masih ada kemungkinan untuk menjalankan program dengan kekuasaan setingkat root. Inilah kegunaan “sudo” dimana dia bisa memberikan pengguna yang telah ditunjuk (authorized user - biasanya disebut "Administrative" users) untuk menjalankan program tertentu sebagai root tanpa harus mengetahui password root.

Ini berarti bahwa di terminal Anda harus menggunakan “sudo” untuk perintah yang memerlukan akses root. Cukup dengan menuliskan “sudo” sebelum menuliskan perintah, maka anda akan dapat bekerja sebagaimana anda sebagai root. Demikian pula, ketika anda menjalankan program GUI yang memerlukan akses root (contoh network configuration applet), menggunakan grafis sudo dan Anda juga akan diminta untuk mengisi password terlebih dahulu. Jangan lupa, ketika sudo meminta anda untuk mengisi password, maka anda hanya perlu mengisikan password anda sendiri, dan bukan password root.

Keuntungan dan Kerugian
Keuntungan menggunakan sudo
Beberapa keuntungan dengan membiarkan login root dinonaktifkan secara default diantaranya adalah sebagai berikut:
1. Ubuntu installer meminta lebih sedikit pertanyaan.
2. Pengguna tidak perlu mengingat password tambahan (yaitu password root), yang umumnya mereka lupakan.
3. Hal tersebut berguna untuk menghindari login yang "Saya dapat melakukan apapun" secara default (contohnya adalah login sebagai "Administrator" di Microsoft Windows). Anda akan diminta untuk memasukkan password sebelum perubahan besar dapat dilakukan, yang akan membuat Anda berpikir tentang konsekuensi dari apa yang kita lakukan tersebut.
4. sudo menambahkan entri log dari perintah berjalan (di /var/log/auth.log). Jika Anda membatalkannya, anda dapat selalu kembali dan melihat perintah apa yang telah atau sedang dijalankan. Hal ini juga bagus untuk proses audit.
5. Setiap “cracker” yang mencoba untuk masuk ke system anda akan mengetahui bahwa terdapat account bernama root, dan mereka akan mencoba untuk memasukinya dahulu. Namun selanjutnya mereka tidak akan mengetahui apa nama user (username) lainnya yang anda gunakan. Sejak password account root, serangan ini pada dasarnya menjadi sia-sia, karena tidak ada password untuk dipecahkan atau ditebak di bagian yang pertama.
6. Memungkinkan hak admin dengan mudah, dalam jangka pendek atau jangka panjang, dengan menambahkan dan menghapus pengguna dari grup, sementara tidak mengurangi account root.
7. sudo dapat disetting dengan banyak aturan keamanan yang lebih baik.
8. Otentikasi secara otomatis berakhir setelah dalam jangka waktu yang singkat (yang dapat diset sekecil mungkin atau nol). maka jika anda keluar dari terminal setelah menjalankan perintah sebagai root dengan menggunakan sudo, anda tidak akan meninggalkan Terminal root dalam keadaan terbuka sama sekali.

Kerugian menggunakan sudo
Meskipun untuk desktop manfaat menggunakan sudo sungguh besar, namun ada beberapa hal yang perlu untuk dijadikan catatan :
1. Meneruskan output dari perindah yang berjalan dengan sudo membutuhkan pendekatan yang berbeda. Sebagai contoh bandingkan perintah :

sudo ls > /root/somefile 
tidak akan berfungsi karena merupakan shell yang mencoba menulis pada file tersebut.
Anda dapat menggunakan perintah

ls | sudo tee /root/somefile 
untuk meng-overwrite isinya.
Anda dapat juga meluluskan seluruh perintah untuk proses di shell agar berjalan dibawah sudo untuk memiliki izin sebagai root, misalnya dengan perintah

sudo sh –c “ls > /root/somefile”
2. Umumnya, di banyak lingkungan kantor, satu-satunya pengguna local (local user) pada system tersebut adalah root. Semua pengguna lainnya diimpor menggunakan teknik NSS seperti nss-ldap. Untuk setup sebuah workstation, atau memperbaikinya, dalam kasus di mana sebuah jaringan bermasalah dikarenakan nss-LDAP rusak, maka root diperlukan. Ini cenderung untuk meninggalkan system dalam keadaan tidak bisa digunakan kecuali dengan di-crack atau di-otak-atik. Local user tambahan atau sebuah password root yang berjalan dibutuhkan. Local user account semestinya memiliki $HOME-nya tersendiri pada local disk, dukan pada NFS (atau filesistem lainnya), dan sebuah .profile/.bashrc yang tidak terhubung ke file lainnya di NFS. Hal ini biasanya terjadi untuk root, tetapi jika menambahkan account non-root untuk perbaikan, maka anda perlu melakukan tindakan pencegahan ini secara manual.
3. Menggunakan satu parameter boot (misalnya, untuk memperbaiki sistem yang rusak) tidak banyak membantu jika Anda berniat untuk menggunakan root option (berlabel Drop ke shell root prompt) dari menu recovery, karena option tersebut memerlukan password root. (Namun hal ini tampaknya telah diperbaiki di Ubuntu 8.10.)


*) Bersambung ke Artikel "Root & Sudo di Ubuntu - bag.2 (Penggunaan) "

Comments :

Post a Comment

Tolong jangan diisi dengan spam ya....