In Unix / Linux, come scopri in quale gruppo appartiene un determinato utente tramite la riga di comando?
In Unix / Linux, come scopri in quale gruppo appartiene un determinato utente tramite la riga di comando?
Risposte:
Questo mostra l'id utente dell'utente e tutti i gruppi (con le loro gid) a cui appartengono
id userid
Su Linux / OS X / Unix per visualizzare i gruppi di appartenenza dell'utente (o dell'utente facoltativamente specificato), utilizzare:
id -Gn [user]
che equivale a groups [user]
all'utilità che è stata obsoleta su Unix.
Su OS X / Unix, il comando id -p [user]
è consigliato per il normale interattivo.
Spiegazione sui parametri:
-G
,--groups
- stampa tutti gli ID di gruppo
-n
,--name
- stampa un nome anziché un numero, per-ugG
-p
- Rendi l'output leggibile dall'uomo.
o semplicemente studia / etc / groups (ok questo probabilmente non funziona se usa pam con ldap)
Di seguito è riportato lo script integrato in ansible e che genera dashboard in formato 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
Il mio output è archiviato in file di testo sotto.
cat /tmp/ANSIBLENODE_sudo.txt
cat /tmp/ANSIBLENODE_inventory.txt
cat /tmp/ANSIBLENODE_inventory_users.txt
getent group <groupname>
.