Anda dapat menggunakan awk
untuk tugas ini:
awk -F: '$3 >= 1000' /etc/passwd
Ini akan membagi /etc/passwd
file dengan titik dua, maka jika bidang 3 (userid) lebih besar dari atau sama dengan 1000, itu akan mencetak seluruh /etc/passwd
merekam.
Jika Anda hanya ingin mengeluarkan nama pengguna dari daftar ini, maka:
awk -F: '$3 >= 1000 {print $1}' /etc/passwd
Di mana $1 adalah kolom pertama dari etc/passwd
yang merupakan nama pengguna.
Misalkan sistem hanya mengenali pengguna lokal (yaitu yang tercatat di /etc/passwd
, berbeda dengan yang diautentikasi melalui layanan jarak jauh seperti LDAP, NIS, atau Winbind), Anda dapat menggunakan grep
, sed
, atau awk
untuk mengekstrak data dari /etc/passwd
. awk
adalah yang paling fleksibel, tetapi bagaimana dengan solusi dengan sed
:
sed -n '/^\([^:]\+\):[^:]\+:[1-9][0-9]\{3\}/ { s/:.*//; p }' /etc/passwd
Anda harus mendapatkan semua pengguna yang memiliki gid
lebih besar dari atau sama dengan 1000. Gunakan perintah ini untuk itu:
awk -F: '($3>=1000)&&($1!="nobody"){print $1}' /etc/passwd
Jika Anda menginginkan pengguna sistem (gid<1000) itu akan menjadi:
awk -F: '($3<1000){print $1}' /etc/passwd