Como descobrir qual grupo um determinado usuário tem?


256

No Unix / Linux, como você descobre em qual grupo um determinado usuário está via linha de comando?


23
Para entender o contrário, veja quem está em um determinado grupo, você pode usar getent group <groupname>.
Iconoclast

1
@iconoclast: que não lista os usuários pertencentes ao grupo em / etc / passwd.
user2284570

Respostas:



102

Este mostra o uid do usuário, bem como todos os grupos (com seus gids) aos quais eles pertencem

id userid

2
Isso parece ser bastante útil também. Ele possui uma saída mais detalhada do que o comando 'groups'; portanto, se você precisar do ID do grupo / usuário, use isso!
Alex Argo

Essa deve ser a resposta mais detalhada e correta, faça um voto positivo!
Harvey Lin

16

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.


0

ou apenas estude o / etc / groups (ok, isso provavelmente não funcionará se usar o pam com o ldap)


7
Na verdade, essa é uma resposta ruim. 'grupo getent' é melhor.
Bortzmeyer

0

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.