Vous pouvez utiliser awk
pour cette tâche :
awk -F: '$3 >= 1000' /etc/passwd
Cela divisera le /etc/passwd
fichier par deux-points, alors si le champ 3 (userid) est supérieur ou égal à 1000, il imprimera le /etc/passwd
entier enregistrer.
Si vous souhaitez extraire uniquement le nom d'utilisateur de cette liste, procédez comme suit :
awk -F: '$3 >= 1000 {print $1}' /etc/passwd
Où $1 est le premier champ de etc/passwd
qui est le nom d'utilisateur.
En supposant que le système ne reconnaisse que les utilisateurs locaux (c'est-à-dire ceux enregistrés en /etc/passwd
, par opposition à tout authentifié via un service distant tel que LDAP, NIS ou Winbind), vous pouvez utiliser grep
, sed
, ou awk
pour extraire les données de /etc/passwd
. awk
est le plus flexible de ceux-ci, mais que diriez-vous d'une solution avec sed
:
sed -n '/^\([^:]\+\):[^:]\+:[1-9][0-9]\{3\}/ { s/:.*//; p }' /etc/passwd
Vous devez obtenir tous les utilisateurs dont le gid
est supérieur ou égal à 1000. Utilisez cette commande pour cela :
awk -F: '($3>=1000)&&($1!="nobody"){print $1}' /etc/passwd
Si vous voulez des utilisateurs système (gid<1000), ce sera :
awk -F: '($3<1000){print $1}' /etc/passwd