Come posso elencare tutti gli account utente nel terminale?


74

Come posso elencare tutti gli account utente locali nel Terminale (sia che abbia effettuato l'accesso o meno?) I comandi userso whonon forniscono queste informazioni. La versione di OS X è 10.6.8.

Ho visto questo comando suggerito - dscacheutil -q group

Ma elenca solo gruppi di utenti di dominio e account non locali.


1
Da molto tempo utente AIX, mi mancano sicuramente i comandi di gestione del sistema che hanno inserito nel loro unix. L'utente sarebbe bello avere per questo scopo.
bmike

Risposte:


68

Che ne dite di

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

Mi piace questa opzione. Restituisce un sacco di conti che iniziano con un trattino basso, però. Un modo per filtrare questo? ad es. _softwareupdate, _mysql
codecowboy

9
dscl . list /Users | grep -v ^_.*
Inoltra

Molto bello! Dovrò ricordare questo.
daviesgeek,

5
Anche questo è facile da impegnare nella memoria.
Kelly,

41

Prova questo. L'ho usato per trovare un account nascosto perso.

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

3
Questo è esattamente ciò che ha detto @Mark qui .
Emil,

qual è il punto di account nascosti?
SuperUberDuper,

Per vedere anche uid, usadscl . list /Users UniqueID | grep -v '^_'
Marián Černý il

Cosa succede se l'utente non è presente?
Cameronroe,

10

Gli account utente dal 10.6 sono gestiti da OpenDirectory. I file di backend relativi agli utenti per OpenDirectory sono qui:

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

L'esecuzione ls *in questa directory enumera tutti gli utenti locali registrati sul sistema. L'esecuzione plutil -p <file>.plistconsentirà di leggere alcune proprietà per l'account utente specificato (ovvero il percorso della directory home corrente).

Questo è piuttosto privo di documenti, quindi accetto i voti negativi. Tuttavia, questo metodo può essere utilizzato per ispezionare un sistema che non è in esecuzione e per il quale l'utente ha solo un'immagine del disco offline.


Mi piace, ma ha richiesto sudo / root per funzionare, l'utente amministratore std ha ottenuto un errore di autorizzazione. dsclfunziona per std admin.
JL Peyret,

6

dscacheutil restituisce più di semplici utenti locali, ad esempio tutti gli utenti per i quali ho richiesto i servizi di directory mostrano anche.

Ho trovato questo più utile:

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

Anche se restituisce anche artisti del calibro di daemon, nobodye root.


4

JMTCW per ricreare un /etc/passwdequivalente amichevole della riga di comando (anche se non esattamente nello stesso ordine):

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

O se preferisci un output separato da spazio (ma l'analisi del campo GECOS sarà un po 'più complicata:

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

2

Se nessuna home directory utente è stata spostata, ls /userslo farà. Tranne che elencherà anche directory come 'Condiviso'.


2
Non farlo mai. Ci sono molto di più di quello Sharedche può esserci.
hamstergene,

-3

Puoi anche digitare:

whoche ti dice chi ha effettuato l'accesso e da dove provengono. Utile se stai cercando qualcuno che si trova fisicamente nello stesso edificio come te o in qualche altra posizione particolare.

wche ti dice chi ha effettuato l'accesso e cosa sta facendo. Particolarmente utile: la parte "inattiva". Ciò ti consente di vedere se sono effettivamente seduti lì a digitare sulla tastiera proprio ora.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.