Comment puis-je lister tous les comptes d'utilisateur du terminal?


74

Comment puis-je répertorier tous les comptes d'utilisateurs locaux dans Terminal (qu'ils soient connectés ou non?) Les commandes usersou whone fournissent pas ces informations. La version OS X est 10.6.8.

J'ai vu cette commande suggérée - dscacheutil -q group

Mais il ne répertorie que les groupes d'utilisateurs du domaine et les comptes non locaux.


1
En tant qu'utilisateur AIX de longue date, les commandes de gestion du système qu'ils ont intégrées à leur unix me manquent. L'utilisateur serait bien d'avoir à cet effet.
bmike

Réponses:


68

Que diriez-vous

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

J'aime cette option. Il retourne cependant un groupe de comptes commençant par un trait de soulignement. Un moyen de filtrer cela? Par exemple, _softwareupdate, _mysql
codecowboy

9
Diffusez le résultat via grepdscl . list /Users | grep -v ^_.*
user151019

Très cool! Je vais devoir me souvenir de celui-ci.
daviesgeek

5
C’est aussi facile à mémoriser.
Kelly

41

Essaye celui-là. Je l'ai utilisé pour trouver un compte caché perdu.

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

3
C'est précisément ce que @Mark a dit ici .
Emil

quel est l'intérêt des comptes cachés?
SuperUberDuper

Pour vous en rendre compte également, utilisezdscl . list /Users UniqueID | grep -v '^_'
Marián Černý

Et si l'utilisateur n'est pas là?
cameronroe

10

Les comptes utilisateur depuis 10.6 sont gérés par OpenDirectory. Les fichiers backend associés aux utilisateurs d’OpenDirectory sont ici:

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

L'exécution ls *dans ce répertoire énumérera tous les utilisateurs locaux enregistrés sur le système. L’exécution plutil -p <file>.plistvous permettra de lire certaines propriétés du compte utilisateur spécifié (par exemple, le chemin du répertoire de base actuel).

Ceci est plutôt non documenté alors j'accepte les votes négatifs. Toutefois, cette méthode peut être utilisée pour inspecter un système qui ne fonctionne pas et pour lequel l'utilisateur ne dispose que d'une image de disque hors connexion.


Je l’aime bien, mais il fallait que sudo / root fonctionne, l’utilisateur administrateur std a obtenu une erreur d’autorisation. dsclfonctionne pour std admin.
JL Peyret

6

dscacheutil renvoie plus que des utilisateurs locaux, par exemple, tous les utilisateurs pour lesquels j'ai interrogé les services d'annuaire s'affichent également.

J'ai trouvé cela plus utile:

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

Bien qu'il retourne aussi les goûts de daemon, nobodyet root.


4

JMTCW pour recréer un /etc/passwdéquivalent convivial en ligne de commande (mais pas tout à fait dans le même ordre):

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

Ou si vous préférez une sortie séparée par des espaces (mais l'analyse du champ GECOS sera un peu plus compliquée:

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

2

Si aucun répertoire personnel de l'utilisateur n'a été déplacé, alors ce ls /userssera fait. Sauf que cela va aussi lister des répertoires comme 'Shared'.


2
Ne fais jamais ça. Il y a beaucoup plus que ce Sharedqui peut être là.
Hamstergene

-3

Vous pouvez aussi taper:

whoce qui vous indique qui est connecté et d'où ils viennent. Utile si vous recherchez quelqu'un qui se trouve réellement dans le même bâtiment que vous ou dans un autre lieu particulier.

wqui vous indique qui est connecté et ce qu'il fait. Particulièrement utile: la partie "inactive". Cela vous permet de voir s’ils sont assis en train de taper sur leur clavier en ce moment.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.