Episode ini membahas pengelolaan user dan group di Rocky Linux, mulai dari useradd dan file passwd-shadow-group, konfigurasi sudo dengan prinsip least privilege, hingga access control dengan permission, ACL, capabilities, dan SUID/SGID/sticky bit.

Di episode 5 sebelumnya kalian sudah memahami dari mana paket software berasal. Sekarang kita bergeser ke topik yang tidak kalah penting: siapa yang boleh mengakses sistem dan apa yang boleh mereka lakukan. Setiap proses di Rocky Linux berjalan atas nama sebuah user, dan setiap user punya hak akses terhadap file, perintah, dan layanan.
Ilmu ini adalah jantung keamanan sistem. Kalian tidak akan bisa mengamankan server tanpa memahami user, group, sudo, dan permission. Bayangkan sistem operasi sebagai gedung kantor: user adalah penghuninya, group adalah tim, sudo adalah kunci pintu akses, dan permission adalah aturan siapa boleh masuk ke ruangan mana. Episode ini akan memberi kalian seluruh set kunci dan aturannya.
Operasi user dimulai dengan perintah sederhana:
useradd -m -s /bin/bash arman
passwd armanusermod -aG wheel arman
userdel -r armanuseradd -m -s /bin/bash arman membuat user arman dengan home directory dan shell Bash. usermod -aG wheel arman menambahkan user ke grup wheel — kita akan membahas artinya sebentar lagi. userdel -r arman menghapus user beserta home directory-nya.
Group mengelompokkan user untuk berbagi akses file. Operasinya simetris dengan user:
groupadd developers
usermod -aG developers arman
groupdel developersSebuah user bisa menjadi anggota beberapa group sekaligus, dan setiap file memiliki satu group pemilik.
Di balik perintah di atas ada tiga file teks yang menjadi database identitas:
cat /etc/passwdcat /etc/shadow
cat /etc/group/etc/passwd — satu baris per user: nama, UID, GID, komentar, home, dan shell. Dapat dibaca semua orang./etc/shadow — hash password dan kebijakan kedaluwarsa. Hanya dapat dibaca root./etc/group — definisi group dan keanggotaannya.Inilah alasan password disimpan di /etc/shadow dan bukan di /etc/passwd: hash yang bocor tetap lebih aman daripada hash yang mudah diakses.
Prinsip terpenting dalam administrasi Linux: jangan bekerja sebagai root setiap saat. Root memiliki kekuatan tanpa batas, dan satu kesalahan ketik sebagai root bisa menghancurkan sistem. Solusinya adalah sudo — menjalankan perintah spesifik dengan hak root, hanya saat dibutuhkan.
Pada Rocky Linux, keanggotaan grup wheel memberikan akses sudo penuh:
sudo dnf5 install vimPerintah ini menginstal vim dengan hak root, sementara kalian tetap login sebagai user biasa.
Aturan sudo disimpan di /etc/sudoers dan direktori /etc/sudoers.d/. File ini sebaiknya diedit dengan visudo, yang memvalidasi sintaks sebelum menyimpan:
visudogrep wheel /etc/sudoersBaris %wheel ALL=(ALL) ALL berarti semua anggota wheel boleh menjalankan semua perintah sebagai semua user.
Untuk skenario tertentu — misalnya script otomatis — kalian bisa mengizinkan perintah tertentu tanpa diminta password:
arman ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart httpdecho 'arman ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart httpd' \
> /etc/sudoers.d/arman-restart-httpd
chmod 440 /etc/sudoers.d/arman-restart-httpdPerhatikan prinsip least privilege: user arman hanya boleh me-restart httpd tanpa password, bukan semua perintah. Pemberian akses yang minimal tapi cukup adalah kebiasaan yang akan melindungi kalian di produksi.
Warning
NOPASSWD untuk semua perintah sama berbahayanya dengan login sebagai root. Batasi NOPASSWD hanya untuk perintah tertentu yang memang harus berjalan tanpa interaksi — dan pastikan file di sudoers.d memiliki permission yang benar.
Setiap file memiliki tiga set permission — untuk owner, group, dan others — masing-masing dengan izin read (4), write (2), dan execute (1):
ls -l /etc/passwdchmod 640 /etc/passwdNilai umask menentukan permission default untuk file baru. Umask 022 menghasilkan file 644 dan direktori 755:
umaskPermission tradisional terbatas pada tiga kategori. ACL (Access Control List) memungkinkan memberikan izin spesifik ke user atau group tambahan:
setfacl -m u:joko:rw /var/www/index.html
getfacl /var/www/index.htmlsetfacl -m u:joko:rw memberi user joko akses baca-tulis ke file tanpa harus memasukkan dia ke dalam group pemilik. getfacl menampilkan semua izin termasuk ACL.
Capabilities memecah hak root menjadi unit kecil. Daripada memberikan seluruh kekuatan root, kalian bisa memberikan satu kemampuan spesifik — misalnya kemampuan mengikat ke port rendah:
setcap cap_net_bind_service=+ep /usr/bin/node
getcap /usr/bin/nodeDengan setcap cap_net_bind_service=+ep, Node.js bisa melayani di port 80 tanpa berjalan sebagai root — praktik yang jauh lebih aman.
Tiga permission khusus terakhir mengubah perilaku file:
/usr/bin/passwd berjalan sebagai root./tmp, hanya pemilik file yang bisa menghapus isinya.ls -l /usr/bin/passwd
ls -ld /tmpchmod +t /var/shared
chmod g+s /var/sharedPada passwd, huruf s di posisi owner menunjukkan SUID aktif. Kombinasi SUID dan SGID adalah fitur yang kuat sekaligus berbahaya — selalu audit file SUID secara berkala, karena celah pada file SUID adalah jalan favorit penyerang untuk eskalasi privilege.
Di episode 6 ini kalian sudah menguasai pengelolaan identitas dan hak akses di Rocky Linux: pembuatan dan pemeliharaan user dan group dengan useradd, usermod, dan userdel; struktur file passwd, shadow, dan group; konfigurasi sudo dan sudoers dengan prinsip least privilege; serta access control tingkat lanjut dengan permission, umask, ACL, capabilities, dan SUID/SGID/sticky bit.
Inti yang harus dibawa pulang:
sudo lewat grup wheel, jangan bekerja sebagai root terus-menerus./etc/shadow; file passwd dan group hanyalah metadata.visudo dan batasi NOPASSWD hanya untuk perintah tertentu.Di episode 7 selanjutnya kita akan membahas systemd dan manajemen layanan — cara mengelola layanan dengan systemctl, memahami targets, membuat unit file service sendiri, override konfigurasi, dan membaca log dengan journalctl. Sekarang kalian tahu siapa yang mengelola sistem; giliran memahami siapa yang menjalankannya!