No Unix / Linux, como você descobre em qual grupo um determinado usuário está via linha de comando?
No Unix / Linux, como você descobre em qual grupo um determinado usuário está via linha de comando?
Respostas:
Este mostra o uid do usuário, bem como todos os grupos (com seus gids) aos quais eles pertencem
id userid
No Linux / OS X / Unix para exibir os grupos aos quais você (ou o usuário especificado opcionalmente) pertence, use:
id -Gn [user]
que é equivalente à groups [user]
utilidade que foi obsoleta no Unix.
No OS X / Unix, o comando id -p [user]
é sugerido para interatividade normal.
Explicação sobre os parâmetros:
-G
,--groups
- imprima todos os IDs de grupo
-n
,--name
- imprima um nome em vez de um número, por-ugG
-p
- Torne a saída legível por humanos.
ou apenas estude o / etc / groups (ok, isso provavelmente não funcionará se usar o pam com o ldap)
Abaixo está o script que é integrado ao painel ansible e gerador no 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
Minha saída armazenada nos arquivos de texto abaixo.
cat /tmp/ANSIBLENODE_sudo.txt
cat /tmp/ANSIBLENODE_inventory.txt
cat /tmp/ANSIBLENODE_inventory_users.txt
getent group <groupname>
.