Skip to content

Polemik Antara “su” Dengan “sudo”

April 7, 2010

Hari ini saya membaca sebuah artikel di Blog Techrepublic yang mengulas tentang pertentangan pendapat di dunia maya di antara para pengguna linux mengenai topik “penggunaan sudo itu tidak aman”. Alasan-alasan yang dikemukakan perihal tidak amannya penggunaan sudo adalah sebagai berikut :

  1. The idea that not using the root account is wrong, using root for everything is fine.
  2. That using sudo for everything provides a false sense of security over performing an action as root directly
  3. That using a user account password to get a root shell is a bad idea
  4. That using a root shell is not dangerous, and that this “grave misunderstanding” came from the idea that running X as root is dangerous
  5. That sudo has very little place in the Enterprise
  6. That relying on sudo is foolish, because it has bugs
  7. That everything should be done from a root shell, and that you should have to know the “uber-secret root password” to get that access

Apakah benar bahwa sudo itu tidak aman? Mana yang lebih baik memakai su atau sudo?

Pada kenyataannya Ubuntu dan OS X, secara default, menyediakan password-less root account dan memberi user administrators sudo access untuk melakukan apasaja.

Bukanlah sebuah kesalahan untuk menggunakan root account pada sistem milik anda sendiri atau jika anda adalah seorang administrator. Dan menggunakan sudo sebagai ganti root shell bukannya tidak aman (alias aman-aman saja). Penentu aman tidaknya sebuah sistem bukanlah pada pilihan su atau sudo, melainkan apakah password yang anda gunakan kuat atau lemah. Walaupun menggunakan su, apakah bisa dijamin sistem anda aman kalau anda menggunakan password yang lemah atau bahkan tanpa password?

Pada sistem seperti Ubuntu atau OS X, dimana anda tidak disediakan root password, anda tidak punya pilihan selain menggunakan sudo (atau membuat root password sendiri). Pada akhirnya, ketidakamanan bukanlan disebabkan oleh software, tetapi  disebabkan oleh user dengan password yang lemah.

Adapun alasan banyak orang tidak mau menggunakan lingkungan X sebagai root adalah karena anda akan punya hak akses pada sesi GUI sebagai root. Apabila anda memilihi hak akses pada sesi GUI root, maka anda memberi peluang kepada browser, atau email client, atau program-program sejenis lainnya untuk merusak sistem anda. Hal ini sangat masuk akal. Menjalankan Firefox dengan user biasa jutaan kali lebih aman dibanding menjalankannya dengan user root, karena program-progam tersebut berinteraksi dengan data-data yang untrusted.

Menanggapi alasan ketidakamanan sudo pada nomor 5 dan 6 yang mengatakan bahwa sudo tidak  diterima di dunia enterprise karena ia memiliki bugs, itu adalah pernyataan yang bodoh. Semua software mengandung bugs — tidak terkecuali juga sudo.  Di dunia enterprise, sudo hampir menjadi suatu keharusan karena ia menyediakan logging sehingga Anda bisa mengaudit pengguna yang melakukan apa, dan kapan.

Berikut ini adalah syslog dari perintah joe yang dieksekusi oleh sudo :

Mar 13 21:03:13 hades sudo:   joe : TTY=pts/2 ; PWD=/home/joe ; USER=root ; COMMAND=/etc/init.d/httpd status

Dan di bawah ini adalah syslog dari perintah joe yang dieksekusi oleh su :

Mar 13 21:04:25 hades su: pam_unix(su:session): session opened for user root by joe(uid=1001)
Mar 13 21:04:25 hades su: pam_unix(su:session): session closed for user root

Perbedaan sangat jelas. Dengan sudo, kita jelas tahu apa yang joe lakukan, kapan, dan dengan privileges privileges-apa.

Sebaliknya dengan su, kita hanya tahu bahwa joe membuka sesi root. Apakah itu untuk menjalankan sebuah shell root? Ataukah menjalankan perintah? Jadi sama sekali tidak ada informasi auditable di sini.

Dengan sudo, dan kemampuan untuk mendelegasikan perintah, kita tidak perlu menyediakan akses tidak terbatas kepada sistem. Kita dapat memberikan akses ke apa yang dibutuhkan saja. Jika joe hanya perlu untuk dapat mengelola Apache, ia tidak perlu mengakses sistem penuh sebagai root, untuk melakukan apa pun yang diinginkan. Kalau cara ini dianggap tidak aman lagi, saya tidak tahu.

Terakhir, asumsi bahwa kita harus menggunakan password kita sendiri dengan sudo adalah salah. Anda dapat memberitahu sudo untuk melakukan otentikasi password bagi pengguna tertentu, dengan menambahkan ke “/etc/sudoers” baris berikut :

Defaults timestamp_timeout=0,rootpw

Sekarang sudo akan selalu meminta password, dan itu adalah password root.

Jika digunakan dengan benar, sudo adalah alat yang fantastik

From → Iptek, Opini, Renungan

Leave a Comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: