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:

file sudoers pada VPS tutorial sudo

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!

Author
Penulis

Nadia Agatha

Nadia merupakan penerjemah lepas sejak 2016, kini ia menjadi penerjemah untuk Hostinger. Ia gemar membaca dan melakukan penelitian seputar penerjemahan dan sosiolinguistik. Disamping itu, ia juga suka bermain dengan kucingnya dan bercengkrama bersama teman-temannya di waktu senggang.