Sous Unix / Linux, comment savoir dans quel groupe se trouve un utilisateur donné via la ligne de commande?
Sous Unix / Linux, comment savoir dans quel groupe se trouve un utilisateur donné via la ligne de commande?
Réponses:
Celui-ci montre l'uid de l'utilisateur ainsi que tous les groupes (avec leurs gids) auxquels ils appartiennent
id userid
Sous Linux / OS X / Unix pour afficher les groupes auxquels vous (ou l'utilisateur éventuellement spécifié) appartenez, utilisez:
id -Gn [user]
qui équivaut à un groups [user]
utilitaire obsolète sous Unix.
Sous OS X / Unix, la commande id -p [user]
est suggérée pour une interaction normale.
Explication sur les paramètres:
-G
,--groups
- imprimer tous les identifiants de groupe
-n
,--name
- imprime un nom au lieu d'un nombre, par-ugG
-p
- Rendez la sortie lisible par l'homme.
ou étudiez simplement / etc / groups (ok cela ne fonctionne probablement pas s'il utilise pam avec ldap)
Ci-dessous se trouve le script qui est intégré dans ansible et génère un tableau de bord au format CSV.
sh collection.sh
#!/bin/bash
HOSTNAME=`hostname -s`
for i in `cat /etc/passwd| grep -vE "nologin|shutd|hal|sync|root|false"|awk -F':' '{print$1}' | sed 's/[[:space:]]/,/g'`; do groups $i; done|sed s/\:/\,/g|tr -d ' '|sed -e "s/^/$HOSTNAME,/"> /tmp/"$HOSTNAME"_inventory.txt
sudo cat /etc/sudoers| grep -v "^#"|awk '{print $1}'|grep -v Defaults|sed '/^$/d;s/[[:blank:]]//g'>/tmp/"$HOSTNAME"_sudo.txt
paste -d , /tmp/"$HOSTNAME"_inventory.txt /tmp/"$HOSTNAME"_sudo.txt|sed 's/,[[:blank:]]*$//g' >/tmp/"$HOSTNAME"_inventory_users.txt
Ma sortie stockée dans les fichiers texte ci-dessous.
cat /tmp/ANSIBLENODE_sudo.txt
cat /tmp/ANSIBLENODE_inventory.txt
cat /tmp/ANSIBLENODE_inventory_users.txt
getent group <groupname>
.