Em '/ etc / passwd', diferentes nomes de usuários para o mesmo ID de usuário podem ter diferentes IDs de grupo?

1

Da interface de programação do Linux, sobre /etc/passwd :

It is possible (but unusual) to have more than one record in the password file with the same user ID, thus permitting multiple login names for the same user ID. This allows multiple users to access the same resources (e.g., files) using different passwords. The different login names can be associated with different sets of group IDs.

Group ID (GID) field is the numeric ID of the first of the groups of which this user is a member. Further group memberships for this user are defined in the system group file.

sobre /etc/group :

User list field is a comma-separated list of names of users who are members of this group. (This list consists of usernames rather than user IDs, since, as noted earlier, user IDs are not necessarily unique in the password file.)

Em /etc/passwd ,

  • o campo ID do grupo depende do nome do usuário ou do ID do usuário?

  • Em outras palavras, nomes de usuários diferentes para o mesmo ID de usuário podem ter IDs de grupo diferentes ou todos os nomes de usuário do mesmo ID de usuário devem ter o mesmo ID de grupo?

Obrigado.

    
por Tim 04.09.2018 / 05:19

2 respostas

2

A chave no banco de dados do usuário, /etc/passwd ou qualquer outra coisa, é o nome de login: é tudo o que você fornece para se identificar ao efetuar login. A partir dessa chave, um programa pode recuperar todas as outras informações armazenadas. banco de dados do usuário; isso acontece sem levar em conta qualquer outro usuário no banco de dados do usuário, até mesmo outros usuários com o mesmo ID de usuário. (Normalmente, isso é feito com getpwnam ou getpwnam_r , diretamente ou via PAM.

Assim, o nome de login leva à senha armazenada, o ID do usuário, o ID do grupo (principal), as informações do GECOS, o diretório inicial e o shell. Isso significa que dois usuários podem compartilhar o mesmo ID de usuário e ainda ter diretórios de usuário e shells diferentes! (Isso era comumente usado no passado para fornecer um shell fall-back vinculado estaticamente para raiz; você teria o usuário usual root com id 0 e shell /bin/bash ou qualquer outro, e outro usuário, digamos sashroot , com id 0 e um shell diferente.)

Daí a resposta para

does the group ID field depend on user name or on user ID?

é que depende apenas do nome do usuário.

A chave no banco de dados do grupo também é o nome do grupo. A partir dessa chave, um programa pode recuperar todas as outras informações armazenadas no banco de dados do grupo; novamente isso acontece sem nenhum respeito por nenhum outro grupo no banco de dados do grupo. (Ao determinar os grupos secundários de um usuário, o processo é mais complexo do que ler o banco de dados do usuário: não há função para listar grupos aos quais um determinado usuário pertence, então isso é feito tipicamente em um loop envolvendo getgrent e endgrent .)

Assim, o nome do grupo leva à senha do grupo, ao ID do grupo e à lista de membros do grupo, que é uma lista de nomes de usuários. Para criar um conjunto de grupos secundários de um usuário, todos os grupos são enumerados e o nome de login do usuário é correspondido aos membros do grupo. Portanto, não apenas dois usuários diferentes com o mesmo ID de usuário podem ter grupos primários diferentes, eles podem pertencer a um conjunto diferente de grupos secundários!

Daí a resposta para

In other words, can different usernames for the same user ID have different group IDs, or must all the usernames for the same user ID have the same group ID?

é que os grupos de um usuário dependem apenas do nome do usuário, e nomes de usuário diferentes podem compartilhar um ID do usuário e ainda ter grupos primários e secundários diferentes.

    
por 04.09.2018 / 17:58
1

Does the group ID field depend on user name or on user ID?

Não. Cada entrada de conta requer campos de nome de usuário, UID (ID do usuário) e GID (ID do grupo) na linha de entrada / etc / passwd. Mas o GID não é "dependente" de nada. Você pode adicionar seus próprios grupos personalizados a /etc/group com o comando addgroup.

In other words, can different usernames for the same user ID have different group IDs, or must all the usernames for the same user ID have the same group ID?

Sim, não há "dependência" entre o UID e o GID, se é isso que você está imaginando. O GID na entrada /etc/passwd indica o ID do grupo padrão do usuário, mas você pode atribuir o usuário a quantos grupos desejar no comando /etc/group usando usermod :

sudo usermod -a -G groupname username

Você também pode alterar o GID padrão para o que quiser. O padrão é criar um GID com o mesmo nome do usuário, mas isso não é um requisito difícil. Você pode mudar isso.

    
por 04.09.2018 / 05:54