Como listar grupos com gid no redhat?

42

Listei os grupos pela primeira vez usando:

groups 

Eu adicionei grupo usando

groupadd -g 300 oinstall
groupadd –g 500 dba

e então quando eu faço

groups 
root bin daemon sys adm disk wheel sfcb

Não consigo encontrar grupos que adicionei. Como listar grupos com o ID do grupo? Além disso, se eu tentar adicioná-lo novamente, o grupo já está presente.

kinkajou
fonte

Respostas:

67

O groupscomando lista os grupos dos quais o usuário atualmente é membro, nem todos os grupos disponíveis no sistema. Você pode procurar um grupo por nome ou gid usando o getentcomando

getent group oinstall
getent group 500

Para mostrar todos os grupos, basta deixar sua consulta de pesquisa fora do comando:

getent group
jordanm
fonte
2
@Kitex porque você criou o grupo, mas você não é um membro dele. Você precisa adicionar seu usuário ao grupo, sair e fazer login novamente para que ele apareça com o groupscomando
Jordanm 26/10/2013
1
@kitex Atualizei um pouco a redação, espero que ajude você a entender.
Jordanm #
2
@Kitex atualizou a resposta
jordanm 26/10
3
@kinkajou muita experiência profissional e muito tempo gasto em sites como este e suporte ao IRC Linux. Sou profissional e entusiasta há cerca de 8 anos. Eu acho que ser um entusiasta é uma parte importante porque é mais provável que você se lembre das coisas de que gosta.
Jordanm
1
@kinkajou Usei o Gnu / Linux para toda a minha computação em casa. Desktops, laptops, raspberry-pi's. Uso-o desde 1991 (originalmente Gnu on Solaris, Dec, HP). Eu continuo adicionando ao meu conhecimento; Não há necessidade de acabar com isso e começar de novo (como no Windows da Microsoft).
CTRL-ALT-DELOR #
9

Você pode listar grupos usando getentou, se não estiver presente, procure/etc/group

Ao executar o comando, o GID é o terceiro valor na saída, por exemplo:

$ getent group
man:x:15:
audio:x:63:
nobody:x:99:
users:x:100:
<--snipped-->
utmp:x:22:

Portanto, para listar apenas nomes de grupos e seus GIDs, use awkpara imprimir as colunas que você deseja assim:

$ getent group | awk -F ":" '{ print $1,$3 }'
man 15
audio 63
nobody 99
users 100
<--snipped-->
utmp 22

Veja também http://man7.org/linux/man-pages/man1/getent.1.html

No caso em que getentnão está presente.

$ grep $group /etc/group

O GID é o terceiro valor na saída. Por exemplo

$ grep users /etc/group
users:x:100:

No exemplo acima, o GID para os usuários do grupo é 100. Para obter apenas o nome do grupo e o GID, você pode usar o awk e o grep assim:

$ cat /etc/group | awk -F ":" '{ print $1,$3 }' 
man 15
audio 63
nobody 99
users 100
<--snipped-->
utmp 22

Esteja ciente de que, para sistemas configurados para usar autenticação externa (como LDAP), todos os grupos não estarão presentes no arquivo / etc / group. Veja também http://www.cyberciti.biz/faq/understanding-etcgroup-file/

M_dk
fonte
6
Os grupos nem sempre são armazenados /etc/group. Eles poderiam ser armazenados em NIS, LDAP, etc.
jordanm
1
Não trabalhe com o grupo LDAP, use getent group.
MUY Belgium