Si vous disposez d'un accès root sur la machine, vous pouvez effectuer les opérations suivantes:
sudo grep -vE '^[^*!]+:[*!]:' /etc/shadow | sort | cut -d: -f1 | while read user; do id $user; done | column -ts' ,' | vi '+set nowrap' -
Comment ça marche
Devenez root pour lire le fichier shadow. Vous n'avez besoin des privilèges root que si vous voulez vérifier si l'utilisateur a un mot de passe défini (utilisateur humain), sinon vous pouvez simplement cat /etc/passwd
au lieu de sudo grep ...
:
sudo
Afficher uniquement les utilisateurs disposant d'un mot de passe:
grep -vE '^[^*!]+:[*!]:' /etc/shadow
Trier par nom d'utilisateur:
sort
Jeter toutes les informations à l'exception du nom d'utilisateur:
cut -d: -f1
Itérer à travers les noms d'utilisateur et l'enrichir avec des informations de groupe:
while read user; do id $user; done
Formatez l'entrée en colonnes:
column -ts' ,'
Utilisez vi pour voir le résultat:
vi '+set nowrap' -
Si vous ne disposez pas d'un accès root,
essayez quelque chose comme ceci:
cut -d: -f1 /etc/passwd | sort | while read user; do id $user; done | sed 's/\(\()\|^\)[^(]*(\|)\)/ /g' | column -t
Sa sortie est un peu différente, mais je laisse le soin au lecteur de combiner les deux parties de cette réponse en quelque chose qui correspond parfaitement au travail. (N'aimez-vous pas simplement sed
?)
cut
. Pour alphabétisé, il y en asort
. Si vous avez besoin des noms de groupe, jouez avec join (qui peut en fait ne montrer qu'un sous-ensemble de colonnes, btw).