Pernahkah Anda ingin melihat daftar semua user dalam sistem Linux? atau ingin menghitung jumlah user dalam sistem? Ada perintah untuk membuat user, menghapus user, melihat daftar user yang masuk, tetapi apa perintah untuk membuat daftar semua user di Linux?

Tutorial ini akan menunjukkan kepada Anda cara melihat daftar user dalam sistem Linux.

Melihat Semua User menggunakan File /etc/passwd

Informasi user lokal disimpan di file /etc/passwd. Setiap baris dalam file ini mewakili informasi masuk untuk satu user. Untuk membuka file Anda bisa menggunakan perintah cat atau less :

less /etc/passwd

Melihat semua user di linux
Seperti yang Anda lihat dari output di atas, setiap baris memiliki tujuh bidang yang dibatasi oleh titik dua, yang berisi informasi berikut:

  • Nama user
  • Kata sandi terenkripsi (x berarti bahwa kata sandi disimpan dalam file /etc/shadow)
  • Nomor user ID (UID)
  • Nomor user ID grup (GID)
  • Nama lengkap user (GECOS)
  • Direktori home user
  • Shell login (default ke /bin/bash)

Jika Anda ingin hanya menampilkan nama user, Anda dapat menggunakan perintah awk atau cut untuk mencetak hanya bidang pertama yang berisi nama user :

awk -F: '{ print $1}' /etc/passwd
cut -d: -f1 /etc/passwd
root
daemon
bin
sys
sync
...
...
sshd
vagrant
cahyo
rina

Dapatkan Daftar semua User menggunakan Perintah getent

Perintah getent menampilkan entri dari database yang dikonfigurasikan dalam file /etc/nsswitch.conf termasuk database passwd yang dapat kita gunakan untuk menanyakan daftar semua user.

Untuk mendapatkan daftar semua user Linux, ketik perintah berikut:

getent passwd

Seperti yang Anda lihat, hasilnya sama seperti ketika menampilkan konten file /etc/passwd. Jika Anda menggunakan LDAP untuk otentikasi user, getent akan menampilkan semua user Linux dari file /etc/passwd dan database LDAP.

Anda juga dapat menggunakan awk atau cut untuk mencetak hanya bidang pertama yang berisi nama user :

getent passwd | awk -F: '{ print $1}'
getent passwd | cut -d: -f1

Periksa apakah ada User di sistem Linux

Sekarang kita tahu bagaimana cara melihat daftar semua user, untuk memeriksa apakah ada user di Linux, kita dapat dengan mudah menyaring daftar user dengan pipe (|) perintah getent dan salurkan ke perintah grep.

Misalnya untuk mengetahui apakah user dengan nama cahyo ada di sistem Linux, kita dapat menggunakan perintah berikut:

getent passwd | grep cahyo

Jika user tersebut ada, perintah di atas akan mencetak informasi login user “cahyo”. Jika user tidak ada, maka output tidak akan menampilkan apapun.

Kita juga dapat memeriksa apakah user ada tanpa menggunakan perintah grep seperti yang ditunjukkan di bawah ini:

getent passwd cahyo

Sama seperti sebelumnya, jika user tersebut ada, perintah akan menampilkan informasi login user.

Jika Anda ingin mengetahui berapa banyak akun yang Anda miliki di sistem, kirimkan output  dari perintah getent passwd ke perintah wc:

getent passwd | wc -l

informasi getent wc

Seperti yang Anda lihat dari output di atas, sistem Linux saya memiliki 31 akun.

User Sistem dan User Normal

Tidak ada perbedaan teknis yang nyata antara sistem dan user biasa (normal). Biasanya user sistem dibuat saat menginstal OS dan paket baru. Dalam beberapa kasus, Anda dapat membuat user sistem yang akan digunakan oleh beberapa aplikasi.

User normal adalah user yang dibuat oleh root atau user lain dengan hak istimewa sudo. Biasanya, pengguna normal memiliki shell login nyata dan direktori home.

Setiap user memiliki user ID numerik yang disebut UID. Jika tidak ditentukan saat membuat user baru dengan perintah useradd, maka UID akan dipilih secara otomatis dari file /etc/login.defs tergantung pada nilai UID_MIN dan UID_MAX.

Untuk memeriksa nilai UID_MIN dan UID_MAX di sistem, Anda dapat menggunakan perintah berikut:

grep -E '^UID_MIN|^UID_MAX' /etc/login.defs
UID_MIN          1000
UID_MAX         60000

Dari output di atas, kita dapat melihat bahwa semua user normal harus memiliki UID antara 1000 dan 60000. Mengetahui nilai minimal dan maksimal memungkinkan kita untuk meminta daftar semua user normal di sistem kita.

Perintah di bawah ini akan mencantumkan semua user normal di sistem Linux :

getent passwd {1000..60000}
vagrant❌1000:1000:vagrant,,,:/home/vagrant:/bin/bash
cahyo❌1001:1001:,,,:/home/cahyo:/bin/bash
rina❌1002:1002:Rina Arisna,,,:/home/rina:/bin/bash
patrick❌1003:1003:Patrick Star,,,:/home/patrick:/usr/sbin/nologin

Nilai UID_MIN dan UID_MAX sistem Anda mungkin berbeda sehingga versi yang lebih umum dari perintah di atas adalah

eval getent passwd {$(awk '/^UID_MIN/ {print $2}' /etc/login.defs)..$(awk '/^UID_MAX/ {print $2}' /etc/login.defs)}

Jika Anda ingin mencetak hanya nama user saja, cukup pipe output ke perintah cut:

eval getent passwd {$(awk '/^UID_MIN/ {print $2}' /etc/login.defs)..$(awk '/^UID_MAX/ {print $2}' /etc/login.defs)} | cut -d: -f1

Kesimpulan

Dalam tutorial ini, Anda belajar cara melihat daftar dan memfilter user di sistem Linux dan perbedaan utama antara user sistem dan users Linux normal.

Perintah yang sama berlaku untuk distribusi Linux apa pun, termasuk Ubuntu, CentOS, RHEL, Debian dan Linux Mint.