Como obter o grupo principal de um usuário?

14

O comando a seguir listará todos os grupos de someUser(o grupo principal e os grupos suplementares):

groups someUser

Mas existe uma maneira de obter apenas o grupo principal?

user7681202
fonte
O grupo principal não está listado primeiro?
simlev

Respostas:

21

Tente seguir os comandos

id -g

id -gn

Bruce
fonte
Alguns offtopic, mas para obter o nome de usuário atual id -un.
userlond
10

Veja o manual do FreeBSD (informações também válidas para Linux):

ID do grupo (GID)

O ID do grupo (GID) é um número usado para identificar exclusivamente o grupo principal ao qual o usuário pertence. Grupos são um mecanismo para controlar o acesso a recursos com base no GID do usuário, e não no UID. Isso pode reduzir significativamente o tamanho de alguns arquivos de configuração e permite que os usuários sejam membros de mais de um grupo. É recomendável usar um GID de 65535 ou menos, pois GIDs mais altos podem quebrar algum software.

Nesse caso, a execução id <username>mostrará gid=<primary group>:

id <username>
uid=1000(<username>) gid=1000(<username>) groups=1000(<username>),4(adm),24(cdrom),27(sudo)

Se você deseja que o comando retorne apenas o nome do grupo principal, consulte man id:

   -g, --group
          print only the effective group ID

   -G, --groups
          print all group IDs

   -n, --name
          print a name instead of a number, for -ugG

então, id -gn <username>deve dar o que você quer.

simlev
fonte
Essa deve ser a resposta aceita. Obrigado :)
grrigore