Pode ser um dos seguintes:
- Poderia ser um bug (embora eu duvide)
- Talvez você precise fazer logout e fazer login novamente
Os grupos estão definidos no /etc/group
.
Não sei por que os seguintes itens têm resultados diferentes. Meu entendimento é que grupos sem especificar um usuário fornecem todos os grupos dos quais o usuário atualmente logado é membro.
jacob@box:~$ groups
jacob adm lp dialout cdrom plugdev lpadmin sambashare
jacob@box:~$ groups jacob
jacob : jacob
Além disso, o que significa "grupos do processo atual" (da página de manual de grupos)? Onde eles estão configurados?
OBSERVAÇÃO: Minha distro é Ubuntu.
Pode ser um dos seguintes:
Os grupos estão definidos no /etc/group
.
Assim como todo processo tem um ID de usuário real e efetivo atual e um ID de grupo real e efetivo, ele também tem um lista de grupos suplementares . Estes são números (não nomes), todos mantidos pelo kernel. Eles são definidos pelo processo de login (ou gerenciador de exibição) quando você o registra, assim como seu ID do usuário. Eles são herdados por subprocessos, assim como seu ID de usuário.
Quando você executa groups
sem argumentos, ele finalmente invoca getgroups () para obter a lista de grupos suplementares do kernel. (No meu sistema Linux, / usr / bin / groups é um script de shell que executa "id -Gn", que por sua vez invoca getgroups ().)
Quando você executa groups username
, o comando tem que "adivinhar" quais serão os grupos suplementares quando o usuário efetuar login. Geralmente, ele faz isso lendo / etc / group ou falando com o NIS ou falando com o nscd ou .. Bem, há muitas maneiras de funcionar.
O que você está observando é semelhante a descobrir que seu ID de usuário real atual e sua entrada em / etc / passwd são inconsistentes. Isso significa que há algo um pouco estranho na configuração do seu sistema, mas é difícil dizer o que sem mais investigação.