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.


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]'

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,


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.


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.


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 " "  - - - - - - - -

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”.


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.