Cara Menggunakan Sudo dan File Sudoers
Command sudo memungkinkan user non root untuk menjalankan command yang biasanya membutuhkan hak istimewa super user, sedangkan file sudoers menginstruksikan sistem untuk menangani command sudo.
Di tutorial ini, kami akan menunjukkan kepada Anda command dasarnya dan cara mengedit file sudoers.
Memahami Sudo
Untuk mengetahui cara kerjanya, Anda harus mengakses VPS melalui SSH. Jika Anda mengalami kesulitan, bacalah tutorial PuTTY kami.
Sebetulnya, user root tidak perlu menggunakan prefix sudo. Mereka sudah mempunyai semua hak-hak istimewa yang dibutuhkan. Namun, jika user non-root ingin menambahkan user lain, prefix sudo harus ditambahkan ke command useradd, seperti:
sudo useradd edward
Jika user tidak menggunakan prefix sudo, maka akan menghasilkan output “Permission denied”.
File Sudoers
Command sudo sudah dikonfigurasi melalui file yang terletak di /etc/ bernama sudoers.
Melalui command ini, Anda menyediakan hak-hak istimewa pada level admin untuk user reguler. Secara normal, user pertama yang dibuat saat menginstall Ubuntu mempunyai hak-hak sudo. Di dalam VPS, user tersebut adalah user root secara default. Anda dapat konfigurasikan user lainnya untuk dapat menjalankan command sudo. Itu dapat dilakukan dengan melakukan edit terhadap sudoers.
Penting: Hati-hati! Saat melakukan edit pada file sudoers, syntax yang salah atau buruk dapat mengunci semua user pada distribusi Anda.
Syntax File Sudoers
Anda dapat membuka file tersebut dengan editor teks yang Anda sukai. Namun pada contoh artikel ini, kami akan menggunakan vi:
vi /etc/sudoers
File VPS kami terlihat seperti ini:
Mari lihat beberapa format dan rule yang harus diikuti saat mengedit sudoers:
- Semua baris yang dimulai dengan # adalah komentar (comment)
- Root ALL=(ALL:ALL) ALL – baris ini berarti user root mempunyai hak-hak istimewa yang tidak terbatas dan dapat menjalankan semua command pada sistem.
- %admin ALL=(ALL) ALL – tanda % menandakan sebuah grup. Siapapun yang berada di dalam grup admin mempunyai hak-hak istimewa yang sama dengan user user.
- %sudo ALL=(ALL:ALL) ALL – semua user di dalam grup sudo mendapatkan hak-hak istimewa untuk menjalankan command apa saja.
Ada baris penting seperti #includedir /etc/sudoers.d, yang memungkinkan Anda untuk dapat menambahkan konfigurasi ke file sudoers.d dan menautkannya di file tersebut.
Mengedit File Sudoers
Untuk mengedit file /etc/sudoers, gunakan command berikut:
sudo visudo -f /etc/sudoers
Kami merekomendasikan untuk menggunakan visudo untuk mengedit pada file sudoers. Visudo memastikan file sudoers diedit oleh satu user pada satu waktu dan dapat memeriksa syntax yang diperlukan.
Untuk melihat user mana yang berada dalam grup sudo, Anda dapat menggunakan command grep:
grep ‘sudo’ /etc/group
Command tersebut akan menghasilkan sebuah daftar berisikan nama-nama user.
Untuk menambahkan sebuah user bernama Bill pada grup sudo, Anda dapat menggunakan command adduser pada baris command, seperti:
adduser bill sudo
Jika Anda menggunakan command grep untuk mengecek siapa saja yang ada di dalam grup, Anda akan melihat username Bill.
Jika Anda ingin memberikan hak-hak istimewa root untuk siapapun, tambahkan mereka ke sudo.
Untuk menghapus user dari sudo:
deluser bill sudo
command deluser akan menghapus Bill dari grup sudo.
Sekarang, user Bill tidak dapat lagi melakukan aksi yang memerlukan hak-hak istimewa sudo.
Menggunakan File Sudo untuk Memberikan Hak Istimewa Tertentu
Bagaimana jika Anda ingin membuat Bill hanya dapat menjalankan command-command tertentu dengan hak-hak istimewa sudo, seperti networking?
Agar dapat melakukannya, Anda harus membuat sebuah file konfigurasi di /etc/sudoers.d/ yang bernama networking.
Gunakan command berikut ini untuk membuat file tersebut:
sudo visudo -f /etc/sudoers.d/networking
Tambahkan teks berikut ke dalam file:
Cmnd_Alias CAPTURE = /usr/sbin/tcdump Cmnd_Alias SERVERS = /usr/sbin apache2ctl, /usr/bin/htpasswd Cmnd_Alias NETALL = CAPTURE, SERVERS %netadmin ALL=NETALL
Langkah yang dilakukan pada file di atas adalah membuat sebuah grup netadmin. User di dalam grup netadmin dapat menjalankan command-command tertentu di dalam NETALL. NETALL secara bergilir memuat semua command di bawah alias CAPTURE dan SERVERS. command tcpdump di bawah alias CAPTURE, contoh /usr/sbin/tcpdump.
Selanjutnya, tambahkan user Bill ke grup netadmin:
sudo adduser bill netadmin
Sekarang, user Bill akan dapat menjalankan command tcpdump begitu juga dengan command networking lainnya.
Kesimpulan
Jika Anda bekerja dengan beberapa user, command sudo dan file sudoers adalah sesuatu yang harus dipahami. Pada tutorial ini, Anda telah mempelajari semua dasar-dasar untuk mengambil kontrol dari hak-hak istimewa sistem Anda!