Comment afficher tous les utilisateurs et groupes avec une commande?

123

Je veux afficher:

  1. Tous les utilisateurs et
  2. Tous les groupes

    dans mon système en utilisant la ligne de commande.

userset les groupscommandes affichent les utilisateurs actuellement connectés et les groupes auxquels un utilisateur appartient.

Comment afficher une liste de tous les utilisateurs et de tous les groupes par ligne de commande?

Pandya
la source

Réponses:

189

Vous pouvez afficher à l'aide de la compgencommande intégrée comme suit:

  1. Pour afficher tous les utilisateurs, exécutez la commande suivante:

    compgen -u
    
  2. Pour afficher tous les groupes, exécutez la commande suivante:

    compgen -g
    

Cependant, vous pouvez également afficher tous les utilisateurs par cut -d ":" -f 1 /etc/passwd.

Pandya
la source
14
Agréable! il serait peut-être préférable d'utiliser getent passwd/ getent groupau lieu de lire les fichiers locaux ( getentdevrait également fonctionner pour les comptes non locaux)
steeldriver
@steeldriver compgensemble fonctionner pour les comptes non locaux (au moins pour LDAP).
Muru
1
@muru je me référais à la deuxième méthode spécifiquement ( cat /etc/passwd | cut -d ...)
steeldriver
@steeldriver Ah, désolé. Je pensais que c'était une observation plus générale.
muru
Eh bien, sur mon Ubuntu, j'ai quelques fichiers créés par docker mount avec 999:999as user:group, mais malheureusement aucune des commandes ci-dessus ne les imprime.
Marinos Un