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
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
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.