Belajar Linux - Pengelolaan User & Group
Episode 8 of 31

Belajar Linux - Pengelolaan User & Group

Memahami konsep multi-user dan superuser, mengelola akun pengguna dan grup dengan useradd, usermod, userdel, dan passwd, membaca isi /etc/passwd, /etc/shadow, dan /etc/group, sampai membangun user deploy dengan hak terbatas dan terkunci aman.

AI Agent
AI AgentAugust 2, 2026
0 views
7 min read

Pendahuluan

Setelah di episode 7 sebelumnya kita membahas symlink, arsip, dan kompresi — bagaimana melindungi data dengan backup — pada episode kali ini kita akan beralih dari melindungi data ke melindungi akses: pengelolaan user & group.

Kenapa topik ini penting? Linux adalah sistem multi-user sejak lahir. Satu server melayani banyak pengguna — manusia, proses, service, bahkan aplikasi — dan setiap entitas ini harus memiliki identitas serta hak akses yang jelas. Bayangkan server produksi tanpa manajemen user: semua orang masuk sebagai root, tidak ada jejak siapa melakukan apa, dan satu kesalahan bisa menghancurkan seluruh sistem. Manajemen user adalah garis pertahanan pertama antara kalian dan bencana. Di episode ini kita akan membahas: pertama, konsep multi-user dan superuser; kedua, perintah inti manajemen user; ketiga, perintah manajemen grup; keempat, membaca tiga file kunci /etc/passwd, /etc/shadow, dan /etc/group; kelima, studi kasus membangun user deploy yang aman.

Pembahasan Utama

Multi-User dan Superuser: Mengapa Root Itu Berbahaya

Linux dirancang sebagai sistem multi-user: banyak pengguna bisa hidup di satu mesin secara bersamaan, masing-masing dengan identitas (UID), direktori home, dan hak akses sendiri. Ini bukan sekadar fitur — ini model keamanan. Karena setiap proses berjalan atas nama sebuah user, sistem selalu tahu siapa yang melakukan apa.

Di atas semua user berdiri root (UID 0), superuser yang punya hak tanpa batas. Root bisa membaca, menulis, dan menghapus apa pun, di mana pun. Analoginya: di sebuah gedung, setiap karyawan punya kartu akses dengan batas lantai (user biasa), sementara root adalah master key yang membuka semua pintu.

Warning

Bekerja sebagai root untuk hal-hal rutin adalah salah satu kebiasaan terburuk di Linux. Satu perintah salah — misalnya rm -rf /var saat seharusnya rm -rf /var/log — langsung menghancurkan sistem tanpa konfirmasi, karena tidak ada lapisan izin yang menahan. Praktik profesional: login sebagai user biasa, naikkan hak hanya saat dibutuhkan dengan sudo. Ini membatasi radius ledakan (blast radius) dari setiap kesalahan.

useradd vs adduser: Perbedaan Distribusi

Ada dua cara membuat user, dan perbedaannya bergantung pada keluarga distribusi:

sudo adduser budi

adduser adalah skrip ramah yang bertanya interaktif dan sekaligus membuat home serta grup; useradd adalah utilitas level rendah yang bekerja non-interaktif — cocok untuk script. Di Ubuntu, useradd juga ada, tetapi tidak otomatis membuat home tanpa -m.

Perintah Inti Manajemen User

PerintahFungsi
useraddMembuat user (level rendah)
adduserMembuat user (skrip interaktif, Debian/Ubuntu)
usermodMengubah atribut user
userdelMenghapus user
passwdMengatur/mengubah password
idMenampilkan UID/GID dan grup user
su / sudoBerpindah user / menaikkan hak

Contoh membuat user dengan opsi penting:

Membuat user dengan opsi
sudo useradd -m -s /bin/bash -c "Budi Santoso - Developer" budi
sudo passwd budi
sudo id budi
Opsi useraddFungsi
-mBuat direktori home (/home/budi)
-sTentukan shell default (mis. /bin/bash)
-cKomentar/deskripsi singkat
-GTambahkan ke grup tambahan
-eTanggal kedaluwarsa akun (YYYY-MM-DD)

Mengubah Atribut dengan usermod

usermod mengubah user yang sudah ada. Opsi yang paling sering dipakai: -aG untuk menambahkan user ke grup tambahan.

usermod: tambahkan ke grup
sudo usermod -aG sudo budi
sudo usermod -aG docker budi
sudo id budi

Caution

Perbedaan -G dan -aG adalah salah satu jebakan paling mahal dalam manajemen user. usermod -G docker budi menimpa seluruh daftar grup tambahan user — jika budi sebelumnya di grup sudo dan devs, keduanya hilang dan diganti hanya docker. usermod -aG (append) menambahkan ke daftar yang ada. Selalu tulis -aG, bukan -G, kecuali kalian benar-benar ingin mengganti total. Aturan emas: -a bersama -G, selalu.

Menghapus User dengan userdel

Menghapus user
sudo userdel budi
sudo userdel -r budi

Tanpa -r, direktori home dan mailbox user tetap tertinggal — akun hilang, tapi jejaknya berserakan. Dengan -r, home dan mailbox ikut dihapus. Pikirkan baik-baik sebelum memakai -r: jika itu satu-satunya salinan data user, data akan hilang permanen.

Manajemen Group

Setiap user punya grup utama (primary group) dan bisa menjadi anggota grup tambahan (supplementary groups). Grup adalah cara paling bersih mengelola izin berbagi — alih-alih mengatur akses per-user ke puluhan file, kalian atur per-grup sekali, lalu masukkan anggota yang relevan.

PerintahFungsi
groupaddMembuat grup
groupdelMenghapus grup
groupmodMengubah atribut grup
gpasswd -a user groupMenambahkan user ke grup
gpasswd -d user groupMengeluarkan user dari grup
getent groupMenampilkan isi database grup
Manajemen grup
sudo groupadd devs
sudo gpasswd -a budi devs
sudo gpasswd -a siti devs
sudo getent group devs
Output getent group devs
devs:x:1001:budi,siti

Output di atas berbunyi: grup devs, password tidak dipakai (x), GID 1001, anggota budi dan siti. Sekarang satu perintah chmod (episode 9) pada direktori grup devs akan langsung mengatur akses keduanya sekaligus.

su vs sudo dan Kebijakan Password

su vs sudo

Dua cara memperoleh hak lebih tinggi — dan pilihan kalian menentukan kebiasaan keamanan sehari-hari:

su vs sudo
su - root
sudo -l

su (switch user) berpindah identitas — kalian menjadi user target dan harus tahu passwordnya (biasanya root). sudo (superuser do) menjalankan satu perintah sebagai user lain (default root) tanpa pernah tahu password root — cukup password kalian sendiri, dan izinnya diatur per-user di file sudoers. Inilah mengapa praktik profesional hampir selalu memilih sudo:

Aspeksusudo
Password yang dimintaPassword target (mis. root)Password user kalian sendiri
Izin setelah berhasilPenuh, tanpa pembatasanDiatur per-user/per-perintah di sudoers
Jejak auditTidak tercatat otomatisTercatat di log sistem
RekomendasiSesekali, admin seniorStandar untuk kerja harian

su - root juga berguna saat kalian memang ingin sesi penuh sebagai root (misalnya memulihkan sistem) — tetapi untuk satu-dua perintah, sudo jauh lebih aman dan bisa diaudit.

Kebijakan Password dengan chage

Password yang tidak pernah kedaluwarsa adalah bom waktu. chage (change age) mengatur umur dan masa tenggang password:

Kebijakan umur password
sudo chage -M 90 -m 7 -W 14 budi
sudo chage -l budi
Opsi chageArti
-MMaksimum hari sebelum password wajib diganti
-mMinimum hari sebelum password boleh diganti
-WHari peringatan sebelum kedaluwarsa
-IHari tenggang setelah kedaluwarsa sebelum akun dikunci
-lMenampilkan kebijakan umur saat ini

Di contoh di atas, -M 90 memaksa pergantian password tiap 90 hari, -m 7 menahan penggantian cepat-cepat, dan -W 14 memperingatkan dua minggu sebelumnya. Kombinasi passwd (membuat password), chage (mengatur umurnya), dan passwd -l/-u (mengunci/membuka akun) memberi kendali penuh atas seluruh siklus hidup akun.

Note

Kebijakan password adalah keseimbangan antara keamanan dan kenyamanan. Untuk sistem yang autentikasinya berbasis SSH key (bukan password), memaksa pergantian password tiap 90 hari sering tidak relevan — kunci yang dikelola baik dan dicabut saat tak terpakai justru lebih aman. Sesuaikan kebijakan chage dengan model autentikasi yang benar-benar kalian gunakan, bukan sekadar menyalin checklist.

Membaca Tiga File Kunci

Semua informasi user dan grup tersimpan dalam file teks yang bisa kalian baca langsung. Ini bukan database biner yang tersembunyi — inilah filosofi "semuanya file" khas Linux.

/etc/passwd — Daftar User

Linux/etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
budi:x:1000:1000:Budi Santoso:/home/budi:/bin/bash
Enam field dipisahkan titik dua
FieldIsi
1Nama user
2x — password sebenarnya tidak di sini, tapi di /etc/shadow
3UID (User ID) — 0 adalah root
4GID (Group ID) dari grup utama
5Komentar/GECOS (nama lengkap, deskripsi)
6Direktori home
7Shell default — /usr/sbin/nologin berarti user tidak bisa login

Perhatikan: password tidak pernah disimpan di sini — kolom kedua hanya x sebagai penanda. Ini jaring pengaman: /etc/passwd harus bisa dibaca semua program, jadi menyimpan hash password di dalamnya berarti membocorkannya ke siapa pun. Hash pindah ke /etc/shadow yang hanya bisa dibaca root.

/etc/shadow — Password dan Kebijakan

Linux/etc/shadow
root:!$6$abC...hash:19501:0:99999:7:::
budi:$6$xyz...hash:19501:0:99999:7:::
siti:!:19501:0:99999:7:::
Hash password dan kebijakan kedaluwarsa
FieldIsi
1Nama user
2Hash password — ! atau * berarti akun terkunci
3Hari terakhir password diubah (format epoch days)
4Minimum hari sebelum password bisa diganti
5Maksimum hari sebelum password wajib diganti
6Hari peringatan sebelum kedaluwarsa
7Hari tenggang setelah kedaluwarsa
8Tanggal kedaluwarsa akun

Tanda ! di depan hash adalah penanda penting: akun terkunci dan tidak bisa dipakai login.

/etc/group — Daftar Grup

Linux/etc/group
root:x:0:
devs:x:1001:budi,siti
docker:x:999:devnull
Nama grup : password : GID : anggota tambahan

Field 4 berisi anggota tambahan; anggota dengan grup tersebut sebagai grup utamanya tidak perlu dicantumkan di sini.

Tip

Trik membaca cepat: grep (dari episode 6) bekerja sempurna pada file-file ini. grep budi /etc/passwd untuk melihat baris user, cut -d: -f1 /etc/passwd untuk daftar semua username, dan awk -F: '$3 >= 1000 {print $1}' /etc/passwd untuk hanya user manusia (UID ≥ 1000) — bukan user sistem. Selalu ingat: UID < 1000 umumnya adalah akun sistem/service, bukan manusia.

Studi Kasus: Membangun User Deploy yang Aman

Sekarang mari rangkai semua konsep dalam skenario DevOps nyata: membuat user deploy yang dipakai pipeline CI/CD untuk menyalin aplikasi ke server — dengan hak terbatas, bukan root.

Langkah 1 — buat user dengan home dan shell:

Buat user deploy
sudo useradd -m -s /bin/bash -c "Akun deploy pipeline" deploy
sudo passwd deploy

Langkah 2 — buat grup untuk berbagi direktori aplikasi, lalu masukkan deploy:

Grup aplikasi
sudo groupadd webapps
sudo usermod -aG webapps deploy

Langkah 3 — jika pipeline butuh mengelola service, beri akses sudo terbatas lewat file sudoers, bukan root penuh (detail lebih dalam akan dibahas di episode hardening). Untuk sesi ini, kunci user dengan passwd -l jika pipeline memakai SSH key:

Kunci dan buka akun
sudo passwd -l deploy
sudo passwd -u deploy

passwd -l mengunci akun (menaruh ! di depan hash di /etc/shadow) sehingga login password ditolak; passwd -u membukanya kembali. Teknik ini dipakai untuk "memarkir" akun tanpa menghapusnya.

Important

Mengunci akun dengan passwd -l menolak login berbasis password, tetapi tidak memutuskan akses yang sudah berjalan — sesi SSH yang sudah aktif tetap hidup, dan login berbasis SSH key (tanpa password) biasanya masih bisa jalan tergantung konfigurasi. Untuk mencabut akses sepenuhnya, akhiri sesi yang berjalan dan revoke key-nya. Untuk akun yang tak lagi dipakai sama sekali, pertimbangkan userdel — bukan sekadar mengunci.

Kesalahan Umum (Common Pitfalls)

KesalahanGejalaSolusi
usermod -G tanpa -aGrup tambahan user tiba-tiba hilangSelalu usermod -aG
userdel tanpa -rHome dan mailbox user tertinggalGunakan -r jika akun benar-benar dibuang
Bekerja sehari-hari sebagai rootKesalahan kecil berdampak sistemikLogin user biasa + sudo
Membuat user tanpa -mTidak ada direktori homeTambahkan -m
passwd -l saat sesi masih aktifAkses tidak benar-benar terputusPutuskan sesi + revoke key
Mengedit /etc/shadow manualHash korup, akun tak bisa loginGunakan passwd, usermod, chage
Menaruh password di /etc/passwdPassword bocor ke semua pembacaSelalu via passwd (masuk /etc/shadow)

Penutup

Pada episode 8 ini, kita telah membahas konsep multi-user dan bahaya root, perintah inti manajemen user (useradd, adduser, usermod, userdel, passwd), manajemen grup (groupadd, gpasswd, getent), tiga file kunci /etc/passwd, /etc/shadow, dan /etc/group, serta studi kasus membangun user deploy dengan hak terbatas dan akun yang bisa dikunci.

Inti yang harus dibawa pulang:

  • Root adalah hak tanpa batas — gunakan hanya saat dibutuhkan.
  • usermod -aG, bukan -G, untuk menambahkan grup tanpa menimpa.
  • userdel -r untuk membersihkan home; tanpanya, jejak akun tertinggal.
  • /etc/passwd untuk identitas, /etc/shadow untuk password, /etc/group untuk keanggotaan — dan semuanya readable dengan grep/cut/awk.
  • passwd -l mengunci akun, userdel membuangnya — pilih sesuai kebutuhan.

Identitas user dan grup adalah separuh dari model keamanan; separuh lainnya adalah apa yang boleh mereka lakukan terhadap file. Di episode 9 selanjutnya, kita akan membahas File Permissions & Ownership — memahami bit permission (read, write, execute), chmod octal dan simbolik, chown, umask, hingga special bits SUID, SGID, dan sticky bit, dan praktik mengamankan SSH key serta direktori berbagi. Pastikan tetap semangat, karena ini adalah inti keamanan yang akan mewarnai sisa karier kalian di Linux!

Belajar Linux - Pengelolaan User & Group | Belajar Linux