Wie kann ich alle Benutzerkonten im Terminal auflisten?


74

Wie kann ich alle lokalen Benutzerkonten in Terminal auflisten (ob angemeldet oder nicht?)? Die Befehle usersoder whonicht diese Informationen. OS X-Version ist 10.6.8.

Ich habe diesen vorgeschlagenen Befehl gesehen - dscacheutil -q group

Es werden jedoch nur Domänenbenutzergruppen und nicht lokale Konten aufgelistet.


1
Als langjähriger AIX-Benutzer vermisse ich die Systemverwaltungsbefehle, die sie in ihr Unix eingebaut haben. lsuser wäre nett, für diesen Zweck zu haben.
bmike

Antworten:


68

Wie wäre es mit

dscacheutil -q user | grep -A 3 -B 2 -e uid:\ 5'[0-9][0-9]'

Ich mag diese Option. Es werden jedoch eine Reihe von Konten zurückgegeben, die mit einem Unterstrich beginnen. Wie kann man das herausfiltern? zB _softwareupdate, _mysql
codecowboy

9
Pipe das Ergebnis durch grepdscl . list /Users | grep -v ^_.*
user151019

Sehr cool! Ich muss mich daran erinnern.
Daviesgeek

5
Dies ist auch so einfach, sich in Erinnerung zu rufen.
Kelly

41

Probier diese. Ich habe es benutzt, um einen versteckten Account zu finden.

dscl . list /Users | grep -v '^_'

3
Genau das hat @Mark hier gesagt .
Emil

Wozu dienen versteckte Konten?
SuperUberDuper

Verwenden Siedscl . list /Users UniqueID | grep -v '^_'
Marián Černý

Was ist, wenn der Benutzer nicht da ist?
Cameronroe

10

Benutzerkonten seit 10.6 werden von OpenDirectory verwaltet. Die Backend-Dateien für OpenDirectory-Benutzer finden Sie hier:

/var/db/dslocal/nodes/Default/users

Bei der Ausführung ls *in diesem Verzeichnis werden alle im System registrierten lokalen Benutzer aufgelistet. Beim Ausführen plutil -p <file>.plistkönnen Sie einige Eigenschaften für das angegebene Benutzerkonto (dh den aktuellen Pfad des Basisverzeichnisses) lesen.

Das ist ziemlich undokumentiert, deshalb akzeptiere ich Ablehnungen. Mit dieser Methode kann jedoch ein System überprüft werden, das nicht ausgeführt wird und für das der Benutzer nur ein Offline-Image hat.


Ich mag es, aber es erforderte sudo / root, um zu arbeiten, bekam std admin user einen Berechtigungsfehler. dsclFunktioniert für Standardadministratoren.
JL Peyret

6

dscacheutil gibt mehr als nur lokale Benutzer zurück, z. B. werden alle Benutzer, für die ich Directory Services abgefragt habe, ebenfalls angezeigt.

Ich fand das nützlicher:

dscl . list /Users | grep -v "^_"

Obwohl es gibt auch Leute wie daemon, nobodyund root.


4

JMTCW zum erneuten Erstellen eines befehlszeilenfreundlichen /etc/passwdÄquivalents (wenn auch nicht in derselben Reihenfolge):

dscacheutil -q user |
    paste -d " "  - - - - - - - - |
    sed 's/^name: //;s/ [^[:space:]]*: /:/g'

Oder wenn Sie eine durch Leerzeichen getrennte Ausgabe bevorzugen (das Parsen von GECOS-Feldern ist jedoch etwas komplizierter:

dscacheutil -q user |
    cut -d: -f2 |\
    paste -d " "  - - - - - - - -

2

Wenn keine Benutzer-Home-Verzeichnisse verschoben wurden ls /users, reicht dies aus. Außer es werden auch Verzeichnisse wie 'Shared' aufgelistet.


2
Mach das niemals. Es gibt viel mehr als nur das Shared, was da sein kann.
Hamstergene

-3

Sie können auch Folgendes eingeben:

whoHier erfahren Sie, wer angemeldet ist und woher sie kommen. Nützlich, wenn Sie jemanden suchen, der sich physisch im selben Gebäude wie Sie oder an einem anderen bestimmten Ort befindet.

wHier erfahren Sie, wer angemeldet ist und was sie tun. Besonders nützlich: der 'Leerlauf'-Teil. So können Sie sehen, ob sie tatsächlich da sitzen und gerade auf ihren Tastaturen tippen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.