Tutorial Pemakaian Command Sudo dan File Sudoer
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 artikel kali ini kami kan menyajikan tutorial kepada Anda command dasarnya dan cara mengedit file sudoers.
Memahami Sudo
Untuk dapat mengetahui cara kerjanya, Anda harus terlebih dahulu mengakses VPS lewat SSH.
Sebetulnya, user root tidak perlu memakai prefix sudo. Mereka sudah dahulu mempunyai semua 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 memasang 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. Hal itu bisa dilakukan dengan melakukan edit terhadap sudoers.
Perlu diingat! Saat mengedit pada file sudoers, syntax yang salah ataupun buruk bisa mengunci semua user pada distribusi Anda.
Syntax File Sudoers
Anda dapat membuka file tersebut dengan editor teks apa saja yang Anda sukai. Pada contoh artikel ini, kami akan memberi contoh menggunakan vi:
vi /etc/sudoers
Tampilan File VPS terlihat seperti ini:

Mari kita simak beberapa format dan rule yang wajib diikuti saat mengedit sudoers:
- Semua baris yang diawali dengan # adalah komentar (comment)
- Root ALL=(ALL:ALL) ALL → baris ini berarti user root memiliki hak-hak istimewa yang tidak ada batasnya dan bisa menjalankan semua command pada sistem.
- %admin ALL=(ALL) ALL →tanda % ini menandakan sebuah grup. Siapa saja yang berada di dalam grup admin mempunyai hak istimewa yang sama dengan user-user.
- %sudo ALL=(ALL:ALL) ALL → semua user di dalam grup sudo mempunyai hak-hak istimewa untuk menjalankan command apa saja.
Terdapat 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 Anda 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 Tom pada grup sudo, Anda dapat menggunakan command adduser pada baris command, seperti:
adduser tom sudo
Jika Anda menggunakan command grep untuk memeriksa siapa saja yang berada dalam grup, Anda akan melihat username Tom.
Jika Anda ingin memberi hak istimewa root kepada siapapun, tambahkan mereka ke sudo.
Untuk menghapus user dari sudo:
deluser tom sudo
command deluser akan menghapus Tom dari grup sudo.
Sekarang, user Tom tidak bisa lagi melakukan aksi yang membutuhkan hak-hak istimewa sudo.
Menggunakan File Sudo untuk Memberikan Hak Istimewa Tertentu
Bagaimana jika Anda ingin membuat Tom hanya dapat menjalankan command tertentu dengan hak-hak istimewa sudo, seperti networking?
Agar Anda bisa 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 di atas adalah cara membuat sebuah grup netadmin. User di dalam grup netadmin dapat menjalankan command-command tertentu di dalam NETALL. NETALL secara bergantian memuat semua command di bawah alias CAPTURE dan SERVERS. Command tcpdump di bawah alias CAPTURE, contoh /usr/sbin/tcpdump.
Selanjutnya, tambahkan user Tom ke grup netadmin:
sudo adduser tom netadmin
Sekarang, user Tom bisa menjalankan command tcpdump begitu juga dengan command networking lainnya.