/ etc / passwd mostra o usuário em um grupo, mas o / etc / group não

3

Eu quero verificar se a conta de usuário filesender_1 é membro do grupo valid_senders .

Quando vejo o / etc / group, o filesender_1 não está lá:

valid_senders:x:12345:production_1

Eu li isso como "production_1 é o único membro do grupo valid_senders, cujo ID de grupo é 12345."

No entanto:

Quando vejo o / etc / passwd, o id do grupo valid_senders é listado para filesender_1 ...

filesender_1:x:1515:12345:filesender_1:/local/home/filesender_1:/bin/sh

... então eu sei que valid_senders é o grupo principal para filesender_1 .

Esta é uma discrepância surpreendente, ou é normal que o / etc / group liste apenas membros onde o grupo é secundário?

    
por Thomas L Holaday 17.06.2014 / 19:06

4 respostas

7

Sim, esta discrepância é normal. Eu vi isso muitas vezes Eu parei de olhar para os arquivos /etc/passwd e /etc/group e em vez disso comecei a olhar para membros de grupos da maneira que eles deveriam ser vistos: getent group <groupname> e groups <username> .

    
por 17.06.2014 / 19:12
5

Sim, há uma diferença entre os grupos primário e suplementar. O grupo primário é o principal mostrado em /etc/passwd , em que um usuário está no login. Para um usuário estar em um grupo suplementar, seu nome de usuário é adicionado à entrada do grupo em /etc/group . Se você usar id -a <user> , ele mostrará os grupos primário e suplementar. Os grupos suplementares dão acesso a recursos, mas todos os novos arquivos são criados com o grupo primário.

Você pode alterar um grupo primário ativo de usuários usando o comando newgrp .

Não é necessário que um usuário tenha o grupo primário também como um grupo secundário. Tudo o que ele fará é reduzir o número de grupos secundários dos quais um usuário pode fazer parte. Tradicionalmente, um usuário estava limitado a 32 grupos secundários, mas isso pode ter mudado nos últimos anos.

usermod pode definir grupos primários e complementares de usuários em um comando. Usar uma ferramenta de gerenciamento de configuração como o fantoche também pode fazer isso sem ter que se preocupar com o comando específico necessário em diferentes tipos de unix.

    
por 17.06.2014 / 21:05
1

Existe um programa chamado membros que você pode instalar na maioria das distribuições Linux que lista os membros reais de um grupo, seja ele o grupo principal ou um grupo suplementar.

Normalmente, quando um usuário é criado sem especificar um grupo com -g ou --gid, o comportamento padrão é definir seu grupo principal como seu nome de usuário, e esse procedimento não é colocado no arquivo / etc / group. Portanto, os arquivos e diretórios criados pelo usuário joe terão a propriedade joe: joe. Mas você não encontrará o grupo 'joe' no arquivo / etc / group.

Se você adicionar o usuário joe ao grupo 'students', então execute

getent group students

mostrará joe na lista de usuários do grupo estudantes .

Executando o programa

members <groupname>

em um grupo mostrará os usuários membros, primários ou complementares, de groupname .

    
por 19.01.2018 / 16:13
-3

Você deve usar lid -g <group>'

    
por 13.02.2018 / 13:20