Solusi 1:
Semua pengguna:
$ getent passwd
Semua grup:
$ getent group
Semua grup dengan pengguna tertentu:
$ getent group | grep username
Solusi 2:
Buat daftar pengguna dan grupnya:
for user in $(awk -F: '{print $1}' /etc/passwd); do groups $user; done
Buat daftar grup dan penggunanya:
cat /etc/group | awk -F: '{print $1, $3, $4}' | while read group gid members; do
members=$members,$(awk -F: "\$4 == $gid {print \",\" \$1}" /etc/passwd);
echo "$group: $members" | sed 's/,,*/ /g';
done
Solusi 3:
Jika Anda tidak peduli dengan pengguna jarak jauh seperti LDAP atau NIS, untuk membuat daftar pengguna dan grup terkaitnya dengan cara sederhana:
cut -d: -f1 /etc/passwd | xargs groups
Keluaran;
root : root myuser : root www-data fuse anotheruser : anotheruser cdrom floppy audio dip video plugdev scanner bluetooth netdev
Solusi 4:
Cantumkan semua pengguna
cut -d':' -f 1 /etc/passwd
Atau
awk -F ':' '{print $1}' /etc/passwd
Sedangkan cat /etc/passwd menunjukkan semua pengguna (dan banyak hal lainnya), cut -d ':' -f 1 adalah cara sederhana untuk memisahkan setiap baris dengan ':' sebagai pembatas dan hanya mengekstrak bidang pertama (pengguna). Hampir sama dengan versi awk.
Cantumkan semua grup
cut -d':' -f 1 /etc/group
Atau
awk -F ':' '{print $1}' /etc/group
Coba tebak, sangat mirip dengan pengguna daftar. Parse saja /etc/group sebagai gantinya.
Cara lain yang menarik, mungkin lebih dekat dengan yang diinginkan OP, adalah compgen . Tidak yakin tentang masalah kompatibilitas.
compgen -u
compgen -g