Memahami Fungsi File /etc/passwd di Linux
Sebagai sistem administrator atau DevOps, kita wajib tahu fungsi-fungsi dari file dan direktori di Linux.
Salah satu direktori yang sering diotak-atik sistem admin dan DevOps
adalah direktori /etc/
.
Direktori ini berisi file-file konfigurasi dari sistem Linux dan aplikasi.
Nah, salah satu file yang menarik untuk kita pahami di sini adalah /etc/passwd
.
Apa itu file /etc/passwd
dan apa fungsinya?
Mari kita pelajari.
Apa itu File /etc/passwd
?
File /etc/passwd
adalah file konfigurasi yang berisi informasi tentang user
account seperti username, user ID, group ID, dan sebagainya.
File ini dimiliki oleh root dengan hak akses rw-r--r--
(644),
yang artinya cuma bisa ditulis oleh root user dan cuma bisa dibaca oleh user biasa.
Gimana cara melihat isi file /etc/passwd
?
Kita bisa membuka file ini dengan teks editor.
Atau bisa juga dengan perintah cat
:
cat /etc/passwd
Hasilnya:
root❌0:0:root:/root:/bin/bash
daemon❌1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin❌2:2:bin:/bin:/usr/sbin/nologin
sys❌3:3:sys:/dev:/usr/sbin/nologin
sync❌4:65534:sync:/bin:/bin/sync
games❌5:60:games:/usr/games:/usr/sbin/nologin
man❌6:12👨/var/cache/man:/usr/sbin/nologin
lp❌7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail❌8:8:mail:/var/mail:/usr/sbin/nologin
news❌9:9:news:/var/spool/news:/usr/sbin/nologin
uucp❌10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy❌13:13:proxy:/bin:/usr/sbin/nologin
www-data❌33:33:www-data:/var/www:/usr/sbin/nologin
backup❌34:34:backup:/var/backups:/usr/sbin/nologin
list❌38:38:Mailing List
systemd-network❌100:102:systemd Network Management,,,:/run/systemd/netif:/usr/sbin/nologin
systemd-resolve❌101:103:systemd Resolver,,,:/run/systemd/resolve:/usr/sbin/nologin
syslog❌102:106::/home/syslog:/usr/sbin/nologin
messagebus❌103:107::/nonexistent:/usr/sbin/nologin
_apt❌104:65534::/nonexistent:/usr/sbin/nologin
uuidd❌105:110::/run/uuidd:/usr/sbin/nologin
_flatpak❌128:142:Flatpak system-wide installation helper,,,:/nonexistent:/usr/sbin/nologin
lxc-dnsmasq❌129:143:LXC dnsmasq,,,:/var/lib/lxc:/usr/sbin/nologin
petanikode❌1001:1001:Petani Kode,,,:/home/petanikode:/bin/bash
debian-tor❌130:144::/var/lib/tor:/bin/false
Memahami Format /etc/passwd
File /etc/passwd
berisi banyak baris. Setiap baris mewakili satu user.
Kok ada banyak sekali user?
Ini karena di Linux punya 4 macam jenis user:
- Root User dikenal juga dengan super user, adalah user yang paling berkuasa di Linux.
- Predefined User user yang sudah ada sejak kita menginstal Linux.
- System User adalah user yang dipakai oleh aplikasi;
- Normal User adalah user biasa yang kita pakai.
Nah, di file /etc/passwd
kita bisa melihat semua daftar user ini.
Pada baris pertama, berisi informasi tentang user root.
root❌0:0:root:/root:/bin/bash
Kemudian baris berikutnya dan seterusnya, berisi informasi tentang Predefined User, System user, dan normal user.
daemon❌1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin❌2:2:bin:/bin:/usr/sbin/nologin
sys❌3:3:sys:/dev:/usr/sbin/nologin
sync❌4:65534:sync:/bin:/bin/sync
games❌5:60:games:/usr/games:/usr/sbin/nologin
man❌6:12👨/var/cache/man:/usr/sbin/nologin
lp❌7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail❌8:8:mail:/var/mail:/usr/sbin/nologin
news❌9:9:news:/var/spool/news:/usr/sbin/nologin
uucp❌10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy❌13:13:proxy:/bin:/usr/sbin/nologin
www-data❌33:33:www-data:/var/www:/usr/sbin/nologin
Contoh informasi normal user:
dian❌1000:1000:Dian,,,:/home/dian:/usr/bin/fish
Oke.. sekarang kita sudah paham, tiap baris mewakili informasi untuk satu user.
Berikutnya, kita akan pahami tiap informasi di dalam baris-baris tersebut.
Berikut ini strukturnya:
Tiap data dipisah dengan titik dua (:
), berikut ini penjelasan masing-masing data.
1. Username
Data petama berisi username yang dipakai oleh user untuk login. Panjangnya 1 sampai 32 karakter.
2. Password
Data kedua berisi password yang sudah dienkripsi. Pada sistem Linux modern, password diwakili oleh huruf x
. Huruf x
ini nanti akan diganti oleh password yang ada di file /etc/shadow
.
Jika data kedua kosong, artinya user tersebut tidak memerlukan password untuk login ke sistem.
3. User ID (UID)
Data ketiga berisi User ID. User ID bersifat unik dan berfungsi untuk mengidentifikasi user pada sistem.
- UID
0
cuma boleh dipakai oleh Root User; - UID
1-99
dipakai oleh Predefined User; - UID
100-999
dipakai oleh System User; - UID
1000
ke atas dipakai oleh Normal User.
4. Group ID
Data berikutnya adalah Group ID yang merupakan ID untuk mengidentifikasi primary group untuk user.
Kita bisa mengecek, user masuk ke group mana aja dengan perintah:
groups username
Maka hasilnya akan seperti ini:
dian : dian adm cdrom sudo dip plugdev lpadmin sambashare kvm libvirt vboxusers docker
5. GECOS
Data berikutnya setelah Group ID adalah GECOS.
GECOS berisi informasi tambahan untuk user seperti Full Name, Room Number, Work Phone Number, dll.
Informasi di GECOS dipisah dengan tanda koma,
Jika isinya seperti ini:
,,,
Artinya data GECOS tersebut kosong.
6. Home Directory
Data ke-6 berisi alamat path untuk Home Directory yang dipakai oleh user. Secara default normal user akan menggunakan direktori /home
sebagai Home Directory-nya.
Misanya username saya dian
, maka akan menggunakan /home/dian
sebagai Home Directory.
7. Login Shell
Data terakhir berisi Login Shell. Login Shell adalah Shell yang akan dipakai oleh user saat login. Secara default biasanya akan menggunakan bash
.
Kamu juga bisa mengganti jenis shell yang dipakai, misalnya menggantinya ke ZSH, Fish Shell, dll.
Baca juga:
Beberapa user seperti Predefined User dan System User menggunakan shell /usr/sbin/nologin
. Artinya user ini tidak menggunakan shell seperti bash.
Misalnya jika kita mencoba login di Telnet/SSH dengan user yang menggunakan shell nologin
, maka koneksi akan otomatis ditutup.
Bolehkan /etc/passwd
diubah?
Tentu saja boleh, namun kamu harus pakai user root untuk mengubahnya.
O ya, isi file /etc/passwd
ini sebenarnya ditambahkan otomatis saat kita membuat user baru dengan perintah adduser
.
Jadi jika kamu ingin mengubah isinya, bisa pakai tiga perintah ini:
adduser
untuk menambahkan user baruuserdel
untuk menghapus userusermod
untuk mengubah data user.
Akhir Kata..
Nah itulah fungsi dan penjelasan tentang file /etc/passwd
. Ini biasanya akan sangat berguna saat kita mengelola server.
Ada pertanyaan?
Silakan sampaikan di komentar.
Semoga bermanfaat. 🙌

Ahmad Muhardian Peternak Linux
Pengguna Linux sejak 2010. Founder of Petani Kode. Suka belajar hal baru dan menulis. Jika kamu suka dengan tulisan saya, silakan berikan dukungan biar semangat dan terus berkarya.