Ahmad Muhardian avatar
Ahmad Muhardian

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.

File /etc/passwd di 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:

  1. Root User dikenal juga dengan super user, adalah user yang paling berkuasa di Linux.
  2. Predefined User user yang sudah ada sejak kita menginstal Linux.
  3. System User adalah user yang dipakai oleh aplikasi;
  4. 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:

format file etc/passwd

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 baru
  • userdel untuk menghapus user
  • usermod 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 avatar

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.