Linux adalah sistem multi-user sejak lahir: satu mesin bisa dipakai banyak orang sekaligus, dan setiap orang memiliki file, pengaturan, serta hak aksesnya sendiri. Kunci dari model ini adalah user account — identitas yang dipakai sistem setiap kali seseorang login, menjalankan perintah, atau membuat file. Semua informasi akun tersimpan sebagai file teks biasa di /etc yang bisa kita baca langsung. Pada Chapter ini kita membedah struktur /etc/passwd dan /etc/shadow, lalu mengenal perintah useradd, passwd, usermod, dan userdel untuk mengelola akun.
Multi-User dalam Kehidupan Nyata #
Setiap proses di Linux dimiliki seorang user, dan setiap file mencatat siapa pemiliknya. Berkat catatan ini, sistem tahu siapa yang menjalankan proses, siapa pemilik file, dan siapa yang boleh mengubah apa. Tanpa pemisahan akun, satu user bisa tanpa sengaja merusak data user lain.
Akun root dengan UID 0 berkuasa penuh atas seluruh sistem, sementara akun user biasa dibatasi oleh permission. Ada pula akun sistem seperti www-data atau sshd yang sengaja dibuat tanpa kemampuan login, agar aplikasi tidak berjalan dengan kuasa penuh — kerusakan dari satu aplikasi pun tetap terbatas.
Anatomi File /etc/passwd #
File /etc/passwd adalah basis data akun utama: satu baris per user dengan tujuh field yang dipisah tanda titik dua (:). Contohnya baris milik root:
grep '^root:' /etc/passwdOutput yang Dihasilkan:
root:x:0:0:root:/root:/bin/bashTanda sirkumfleks (^) membuat grep hanya mencocokkan baris yang diawali root:, sehingga user lain tidak ikut tersaring. Tujuh field baris tersebut bermakna:
| Posisi | Field | Nilai untuk root | Maknanya |
|---|---|---|---|
| 1 | nama login | root | nama yang diketik saat login |
| 2 | password | x | penanda hash di /etc/shadow |
| 3 | UID | 0 | nomor identitas user bagi kernel |
| 4 | GID | 0 | nomor group primer si user |
| 5 | GECOS | root | komentar bebas, misal nama lengkap |
| 6 | home | /root | direktori awal setelah login |
| 7 | shell | /bin/bash | program yang dijalankan saat login |
Kadang kita hanya butuh field tertentu — cut membelah baris berdasarkan pemisah lalu memilih kolomnya:
grep '^root:' /etc/passwd | cut -d: -f1,3,7Output yang Dihasilkan:
root:0:/bin/bashMari kita bedah dua tahap pipeline tersebut:
grep '^root:' /etc/passwdmenyaring baris yang diawaliroot:; karena field pertama adalah nama login, pola ini tidak akan salah tangkap.cut -d: -f1,3,7membelah baris dengan pemisah tanda titik dua, lalu mengambil field ke-1 (nama), ke-3 (UID), dan ke-7 (shell).
Sebagai contoh tampilan, baris user biasa bernama Budi di komputer lain tampak seperti ini:
budi:x:1001:1001:Budi Santoso:/home/budi:/bin/bashPassword Tidak Disimpan di /etc/passwd #
Field kedua berisi x — bukan password, melainkan penanda bahwa hash password sesungguhnya disimpan di /etc/shadow. Dulu hash ditulis langsung di /etc/passwd, tetapi file tersebut wajib terbaca semua user karena banyak alat bergantung padanya — misalnya ls memakainya untuk menerjemahkan angka UID menjadi nama. Hash yang bisa dibaca semua orang mudah di-crack secara offline — karena itu hash kini dipindah ke /etc/shadow.
Kita bisa membandingkan permission kedua file itu secara langsung:
stat -c '%a %U:%G %n' /etc/passwd /etc/shadowOutput yang Dihasilkan:
644 root:root /etc/passwd
640 root:shadow /etc/shadowAngka 644 berarti semua user boleh membaca /etc/passwd. Sebaliknya /etc/shadow ber-640 dengan pemilik root dan group shadow — hanya mereka yang boleh membaca hash di dalamnya. Hash modern ($6$... untuk SHA-512, $y$... untuk yescrypt) selalu disertai salt, sehingga password sama pun menghasilkan hash berbeda. Format kedua file didokumentasikan di passwd(5)
dan shadow(5)
.
Mengelola Akun dengan useradd, passwd, dan usermod #
Membuat akun berarti menambah baris baru ke /etc/passwd — pekerjaan useradd. Perintah di bagian ini membutuhkan akses root:
sudo useradd -m -s /bin/bash budi
sudo passwd budiOpsi -m membuat home directory /home/budi beserta kerangka file awal; -s menetapkan shell login user tersebut. Setelah baris akun ada, passwd budi menetapkan passwordnya — perintah ini meminta password baru dua kali tanpa menampilkan apa pun ke layar.
Dua pelengkap menutup siklus hidup akun: usermod -L budi mengunci akun dengan menyisipkan tanda seru di awal hashnya, sedangkan userdel -r budi menghapus akun beserta home directory dan mail spool-nya.
Satu hal belum kita bahas: field keempat /etc/passwd menyebut GID, yaitu group primer si user. Group adalah cara Linux berbagi akses antar banyak user sekaligus — kita bedah pada Chapter Group Management
.