Post

sudo

Panduan konfigurasi hak akses sudo untuk pengguna di Debian

sudo

With great sudo power comes great responsibility

Pendahuluan

sudo (superuser do) adalah mekanisme kontrol akses fundamental dalam sistem operasi berbasis Unix yang memungkinkan pengguna terautentikasi menjalankan perintah dengan hak istimewa pengguna lain (biasanya root). Sistem ini memberikan fleksibilitas administratif sekaligus mempertahankan jejak audit yang jelas. Pada lingkungan Debian, konfigurasi sudo yang tepat sangat penting untuk keseimbangan antara akses administratif dan keamanan sistem.

Prasyarat Sistem

Sebelum konfigurasi, pastikan:

  1. Sistem Debian versi stabil (Bookworm atau versi terbaru)
  2. Akses akun root atau pengguna dengan hak sudo
  3. Paket sudo terinstal (apt install sudo)
  4. Pengguna target (dalam hal ini “sysadmin”) telah terdaftar di sistem

Anatomi File Konfigurasi Sudo

Konfigurasi sudo utama terletak di /etc/sudoers dengan struktur:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Direktif Host_Alias
Host_Alias WEBSERVERS = web1, web2

# Direktif User_Alias
User_Alias ADMINS = sysadmin, admin2

# Direktif Runas_Alias
Runas_Alias DBADMIN = postgres, mysql

# Direktif Cmnd_Alias
Cmnd_Alias PROCESS_MGMT = /bin/kill, /usr/bin/killall

# Aturan Hak Akses
ADMINS WEBSERVERS = (DBADMIN) PROCESS_MGMT

Prosedur Konfigurasi Langkah demi Langkah

Metode 1: Keanggotaan Grup sudo (rekomendasi)

Login sebagai root:

1
su -

Tambahkan pengguna ke grup sudo:

1
usermod -aG sudo sysadmin

Verifikasi keanggotaan grup:

1
grep sudo /etc/group

Metode 2: Konfigurasi Manual File sudoers

Buka editor sudoers:

1
visudo

Tambahkan baris berikut di bagian USER PRIVILEGE SPECIFICATION:

1
sysadmin  ALL=(ALL:ALL) ALL

Alternatif konfigurasi terbatas:

1
sysadmin  ALL=(root) /usr/bin/apt, /usr/bin/systemctl
  • sysadmin: Pengguna target
  • ALL: Berlaku untuk semua host
  • (ALL:ALL): Dapat menjalankan sebagai semua pengguna dan grup
  • ALL: Dapat menjalankan semua perintah

Verifikasi Konfigurasi

Switch ke pengguna sysadmin:

1
su - sysadmin

Uji hak akses sudo:

1
2
sudo -v
sudo -l

Jalankan perintah uji:

1
sudo whoami # Output yang diharapkan: root

Konfigurasi Lanjutan

Tanpa Password (tidak direkomendasikan)

1
sysadmin  ALL=(ALL) NOPASSWD: ALL

Pembatasan Perintah Spesifik

1
sysadmin  ALL=(root) /usr/bin/apt update, /usr/bin/systemctl restart *

Konfigurasi Berbasis Direktori

Buat direktori konfigurasi tambahan:

1
mkdir /etc/sudoers.d/

Tambahkan file konfigurasi khusus:

1
echo "sysadmin ALL=(ALL) /usr/bin/df" | sudo tee /etc/sudoers.d/diskcheck

Pastikan izin file benar:

1
chmod 440 /etc/sudoers.d/diskcheck

Troubleshooting Umum

“sysadmin is not in the sudoers file”

Solusi:

  1. Verifikasi keanggotaan grup: groups sysadmin
  2. Periksa direktif includedir di /etc/sudoers
  3. Pastikan tidak ada konflik aturan di /etc/sudoers.d/

Kesalahan Sintaksis

Solusi:

  1. Selalu gunakan visudo untuk mengedit konfigurasi
  2. Verifikasi dengan visudo -c
  3. Periksa log di /var/log/auth.log

Permasalahan Keanggotaan Grup

Perbarui keanggotaan grup tanpa logout:

1
sudo -u sysadmin sg sudo -c "id"

Best Practices Keamanan

  1. Prinsip Privilege Minimum: Berikan hanya akses yang diperlukan
  2. Audit Berkala: Tinjau log /var/log/auth.log secara rutin
  3. Konfigurasi Modular: Gunakan /etc/sudoers.d/ untuk manajemen terpisah
  4. Timeout Password: Atur dengan Defaults timestamp_timeout=15
  5. Peringatan Penggunaan: Aktifkan banner dengan Defaults lecture=always

Manajemen Pengguna Lanjutan

Membuat Pengguna dengan Akses Sudo

1
adduser sysadmin --ingroup sudo --gecos "System Administrator"

Mencabut Hak Akses Sudo

1
deluser sysadmin sudo
1
gpasswd -d sysadmin sudo
This post is licensed under CC BY 4.0 by the author.