Sie können awk
verwenden für diese Aufgabe:
awk -F: '$3 >= 1000' /etc/passwd
Dadurch wird die /etc/passwd
geteilt Datei durch Doppelpunkt, dann, wenn Feld 3 (Benutzer-ID) größer oder gleich 1000 ist, wird es den gesamten /etc/passwd
drucken aufnehmen.
Wenn Sie nur den Benutzernamen aus dieser Liste erhalten möchten, dann:
awk -F: '$3 >= 1000 {print $1}' /etc/passwd
Wobei $1 das erste Feld von etc/passwd
ist das ist der Benutzername.
Angenommen, das System erkennt nur lokale Benutzer (d. h. die in /etc/passwd
, im Gegensatz zu einer Authentifizierung über einen entfernten Dienst wie LDAP, NIS oder Winbind), können Sie grep
verwenden , sed
, oder awk
um die Daten aus /etc/passwd
zu extrahieren . awk
ist die flexibelste davon, aber wie wäre es mit einer Lösung mit sed
:
sed -n '/^\([^:]\+\):[^:]\+:[1-9][0-9]\{3\}/ { s/:.*//; p }' /etc/passwd
Sie müssen alle Benutzer abrufen, deren gid
größer oder gleich 1000 ist. Verwenden Sie dazu diesen Befehl:
awk -F: '($3>=1000)&&($1!="nobody"){print $1}' /etc/passwd
Wenn Sie Systembenutzer (gid<1000) wollen, wird es sein:
awk -F: '($3<1000){print $1}' /etc/passwd