Pernahkah Anda ingin membuat daftar semua pengguna di sistem Linux Anda atau menghitung jumlah pengguna di sistem? Ada perintah untuk membuat pengguna, menghapus pengguna, daftar pengguna yang masuk, tetapi apa perintah untuk membuat daftar semua pengguna di Linux?
Tutorial ini akan menunjukkan cara membuat daftar pengguna di sistem Linux.
Dapatkan Daftar Semua Pengguna menggunakan /etc/passwd
Berkas #
Informasi pengguna lokal disimpan di /etc/passwd
mengajukan. Setiap baris dalam file ini mewakili informasi login untuk satu pengguna. Untuk membuka file, Anda dapat menggunakan cat
atau less
:
less /etc/passwd
Setiap baris dalam file memiliki tujuh bidang yang dibatasi oleh titik dua yang berisi informasi berikut:
- Nama pengguna.
- Kata sandi terenkripsi (
x
berarti kata sandi disimpan di/etc/shadow
berkas). - Nomor ID Pengguna (UID).
- Nomor ID grup pengguna (GID).
- Nama lengkap pengguna (GECOS).
- Direktori beranda pengguna.
- Login shell (default ke
/bin/bash
).
Jika Anda hanya ingin menampilkan nama pengguna, Anda dapat menggunakan awk
atau cut
perintah untuk mencetak hanya bidang pertama yang berisi nama pengguna:
awk -F: '{ print $1}' /etc/passwd
cut -d: -f1 /etc/passwd
root
daemon
bin
sys
sync
...
...
sshd
vagrant
jack
anne
Dapatkan Daftar semua Pengguna menggunakan Perintah getent #
getent
perintah menampilkan entri dari database yang dikonfigurasi di /etc/nsswitch.conf
file, termasuk passwd
database, yang dapat digunakan untuk menanyakan daftar semua pengguna.
Untuk mendapatkan daftar semua pengguna Linux, masukkan perintah berikut:
getent passwd
Seperti yang Anda lihat, outputnya sama seperti saat menampilkan konten /etc/passwd
mengajukan. Jika Anda menggunakan LDAP untuk autentikasi pengguna, getent
akan menampilkan semua pengguna Linux dari /etc/passwd
file dan database LDAP.
Anda juga dapat menggunakan awk
atau cut
untuk mencetak hanya bidang pertama yang berisi nama pengguna:
getent passwd | awk -F: '{ print $1}'
getent passwd | cut -d: -f1
Periksa apakah ada pengguna di sistem Linux #
Sekarang kita tahu bagaimana membuat daftar semua pengguna, untuk memeriksa apakah pengguna ada di kotak Linux kita, kita cukup memfilter daftar pengguna dengan menyalurkan daftar ke grep
perintah.
Misalnya, untuk mengetahui apakah pengguna dengan nama jack
ada di sistem Linux kami, kami dapat menggunakan perintah berikut:
getent passwd | grep jack
Jika pengguna ada, perintah di atas akan mencetak informasi login pengguna. Tidak ada keluaran yang berarti pengguna tidak ada.
Kami juga dapat memeriksa apakah pengguna ada tanpa menggunakan grep
perintah seperti yang ditunjukkan di bawah ini:
getent passwd jack
Sama seperti sebelumnya, jika pengguna ada, perintah akan menampilkan informasi login pengguna.
Jika Anda ingin mengetahui berapa banyak akun pengguna yang Anda miliki di sistem Anda, kirim getent passwd
output ke wc
perintah:
getent passwd | wc -l
33
Seperti yang Anda lihat dari output di atas, sistem Linux saya memiliki 33 akun pengguna.
Pengguna Sistem dan Normal #
Tidak ada perbedaan teknis yang nyata antara sistem dan pengguna biasa (normal). Biasanya pengguna sistem dibuat saat menginstal OS dan paket baru. Dalam beberapa kasus, Anda dapat membuat pengguna sistem yang akan digunakan oleh beberapa aplikasi.
Pengguna normal adalah pengguna yang dibuat oleh root atau pengguna lain dengan hak sudo. Biasanya, pengguna biasa memiliki shell login asli dan direktori home.
Setiap pengguna memiliki ID pengguna numerik yang disebut UID. Jika tidak ditentukan saat membuat pengguna baru dengan useradd
perintah, UID akan dipilih secara otomatis dari /etc/login.defs
file tergantung pada UID_MIN
dan UID_MIN
nilai.
Untuk memeriksa UID_MIN
dan UID_MIN
nilai pada sistem Anda, 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 pengguna normal harus memiliki UID antara 1000 dan 60000. Mengetahui nilai minimal dan maksimal memungkinkan kita untuk menanyakan daftar semua pengguna normal di sistem kita.
Perintah di bawah ini akan mencantumkan semua pengguna normal di sistem Linux kami:
getent passwd {1000..60000}
vagrant:x:1000:1000:vagrant,,,:/home/vagrant:/bin/bash
jack:x:1001:1001:,,,:/home/jack:/bin/bash
anne:x:1002:1002:Anne Stone,,,:/home/anne:/bin/bash
patrick:x:1003:1003:Patrick Star,,,:/home/patrick:/usr/sbin/nologin
UID_MIN
sistem Anda dan UID_MIN
nilainya 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 pengguna, cukup kirimkan output ke cut
perintah:
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 mempelajari cara membuat daftar dan memfilter pengguna di sistem Linux Anda dan apa perbedaan utama antara pengguna sistem dan pengguna Linux biasa.
Perintah yang sama berlaku untuk semua distribusi Linux, termasuk Ubuntu, CentOS, RHEL, Debian, dan Linux Mint.
Jangan ragu untuk meninggalkan komentar jika Anda memiliki pertanyaan.