Jak mogę wyświetlić listę wszystkich kont użytkowników w terminalu?

74

Jak mogę wyświetlić listę wszystkich lokalnych kont użytkowników w Terminalu (zalogowanych czy nie?) Polecenia userslub whonie zawierają tych informacji. Wersja OS X to 10.6.8.

Widziałem to sugerowane polecenie - dscacheutil -q group

Wymienia jednak tylko grupy użytkowników domeny i konta nielokalne.

codecowboy
źródło
1
Jako długoletni użytkownik systemu AIX z pewnością brakuje mi poleceń zarządzania systemem, które zapisali w swoim systemie UNIX. Lsuser byłoby miło mieć do tego celu.
bmike

Odpowiedzi:

68

Co powiesz na

dscacheutil -q user | grep -A 3 -B 2 -e uid:\ 5'[0-9][0-9]'
Kevin
źródło
Podoba mi się ta opcja. Zwraca jednak kilka kont zaczynających się od podkreślenia. Jakiś sposób to odfiltrować? np. _softwareupdate, _mysql
codecowboy
9
dscl . list /Users | grep -v ^_.*
Prześlij
Bardzo fajny! Będę musiał pamiętać o tym.
daviesgeek
5
To także takie łatwe do zapisania w pamięci.
Kelly,
41

Spróbuj tego. Użyłem go, aby znaleźć utracone ukryte konto.

dscl . list /Users | grep -v '^_'
użytkownik41486
źródło
3
Dokładnie tak powiedział tutaj @Mark .
Emil
jaki jest sens ukrytych kont?
SuperUberDuper,
Aby zobaczyć także UID, użyjdscl . list /Users UniqueID | grep -v '^_'
Marián Černý
Co jeśli użytkownika nie ma?
cameronroe
10

Kontami użytkowników od 10.6 zarządza OpenDirectory. Pliki zaplecza związane z użytkownikami dla OpenDirectory są tutaj:

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

Wykonanie ls *w tym katalogu wyliczy wszystkich lokalnych użytkowników zarejestrowanych w systemie. Wykonanie plutil -p <file>.plistpozwoli ci odczytać niektóre właściwości dla określonego konta użytkownika (tj. Bieżąca ścieżka do katalogu domowego).

Jest to raczej nieudokumentowane, dlatego akceptuję opinie negatywne. Tej metody można jednak użyć do sprawdzenia systemu, który nie jest uruchomiony i dla którego użytkownik ma tylko obraz dysku offline.

antonon
źródło
Podoba mi się, ale wymagało sudo / root do pracy, std admin użytkownik dostał błąd uprawnień. dscldziała dla std admin.
JL Peyret
6

dscacheutil zwraca więcej niż tylko lokalnych użytkowników, na przykład tych, których zapytałem o usługi katalogowe.

Uznałem to za bardziej przydatne:

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

Mimo to również zwraca pokroju daemon, nobodyi root.

chymb
źródło
4

JMTCW, aby odtworzyć przyjazny /etc/passwdodpowiednik wiersza poleceń (choć nie do końca w tej samej kolejności):

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

Lub jeśli wolisz wynik oddzielony spacjami (ale analiza pola GECOS będzie nieco bardziej skomplikowana:

dscacheutil -q user |
    cut -d: -f2 |\
    paste -d " "  - - - - - - - -
don
źródło
2

Jeśli nie zostaną przeniesione katalogi domowe użytkowników, ls /userszrobi to. Tyle tylko, że wyświetli także katalogi takie jak „Shared”.

iskra
źródło
2
Nigdy tego nie rób. Istnieje znacznie więcej niż tylko Sharedto.
hamstergene
-3

Możesz także wpisać:

whoco mówi, kto jest zalogowany i skąd pochodzi. Przydatne, jeśli szukasz kogoś, kto jest fizycznie w tym samym budynku co Ty lub w innym konkretnym miejscu.

wco mówi, kto jest zalogowany i co robi. Szczególnie przydatne: część „bezczynna”. Pozwala to zobaczyć, czy w tej chwili siedzą i piszą na klawiaturze.

Jordania
źródło