Befehl, alle Benutzer mit ihrer UID aufzulisten?

15

Wie kann ich alle Benutzer mit ihren UIDs auflisten? Ich möchte dies vom Terminal aus tun.

becko
quelle
cat / etc / passwd
Panther

Antworten:

17

Alle Benutzer mit einem /homeOrdner auflisten:

awk -F: '/\/home/ {printf "%s:%s\n",$1,$3}' /etc/passwd

oder alle Benutzer mit UID >= 1000:

awk -F: '($3 >= 1000) {printf "%s:%s\n",$1,$3}' /etc/passwd

eine Kombination

awk -F: '/\/home/ && ($3 >= 1000) {printf "%s:%s\n",$1,$3}' /etc/passwd

oder für alle Einträge

awk -F: '{printf "%s:%s\n",$1,$3}' /etc/passwd

Mehr Infos hier

AB
quelle
10

Sie können es leicht finden, indem Sie einfach verwenden cut:

cut -d: -f1,3 /etc/passwd
  • -d:Setzt das Trennzeichen wie :fürcut

  • -f1,3extrahiert das nur durch begrenzte Feld 1 und 3 :aus der /etc/passwdDatei

Überprüfen Sie man cut, um weitere Informationen zu erhalten.

Beispiel

$ cut -d: -f1,3 /etc/passwd
root:0
daemon:1
bin:2
sys:3
sync:4
games:5
......

Wenn Sie ldapkonfiguriert haben, um die ldapBenutzer in die Ausgabe einzubeziehen:

getent passwd | cut -d: -f1,3
heemayl
quelle
1
Sie sollten getent passwdanstelle von / etc / passwd verwenden, da in letzterem ldap-Benutzer nicht berücksichtigt werden
Daenyth
@ Daenyth Meine anfängliche Antwort war, dass tatsächlich .. dann der Vereinfachung halber (und unter Berücksichtigung von Nein ldap) ich auf die aktuelle verschoben .. wie auch immer bearbeitet :)
Heemayl
0

Da Sie versuchen, die UID und den Benutzernamen aufzulisten, funktioniert der folgende Befehl unter Solaris am besten. Sie haben zwei awk

awk -F: '($ 3> = 1000) {printf "% s:% s", $ 1, $ 3}' / etc / passwd

Mr_Macc
quelle
0

Ich finde, der einfachste Weg ist, webmin auf Ihrem Server zu haben und einfach zu System> Benutzer und Gruppen zu gehen. Dort haben Sie eine schön formatierte Liste mit allen Benutzernamen und Gruppen mit ihren Benutzer-IDs, dem Home-Verzeichnis usw.

MitchellK
quelle
0

Alternativ können Sie alle Benutzer einschließlich UID- und GID-Informationen auflisten.

for user in $(cat /etc/passwd | cut -f1 -d":"); do id $users; done 

Prost,

Boschko
quelle