Qual é a diferença entre gid e grupos?

1

Eu estava pensando sobre o seguinte comportamento:

Eu tenho três usuários A , B e C . A cria uma pasta e altera a propriedade do grupo para o grupo C .

mkdir fold
chgrp C fold
chmod g+rw fold

Agora adiciono B ao grupo de usuários C por

usermod -a -G C B

e id B me dá uid=1002(B) gid=1002(B) groups=1002(B),1003(C) . Tentar alterar o conteúdo de fold ( mkdir fold/fold2 ou touch fold/test ) como usuário B , no entanto, me dá uma permissão negada e somente A e C podem alterar o conteúdo dessa pasta. Qual é a razão? Se eu alterar o gid de B para C por usermod -g C B , mas isso não pode ser a maneira correta, certo?

    
por greole 28.01.2014 / 18:17

1 resposta

2

Acessar um diretório requer a permissão de execução ( x ). A permissão de leitura ( r ) apenas permite listar o conteúdo do diretório e não acessar esse conteúdo. A permissão de gravação ( w ) é inútil sem x .

chmod g+x fold

(Para o benefício de futuros visitantes com sintomas similares, mas não idênticos)

Na saída de id , gid é o grupo principal e o% co_de do usuário % lista todos os grupos suplementares também. O grupo primário é o listado no arquivo groups e os grupos suplementares são aqueles listados no arquivo passwd .

A associação de um usuário em um grupo é significativa apenas para o sistema de login. Após o login, não há relacionamento entre usuários e grupos. Cada processo, começando com o processo de login, tem um usuário primário¹, um grupo primário e qualquer número de grupos suplementares. Assim, uma alteração dos bancos de dados do usuário e do grupo só entra em vigor nas sessões iniciadas após a alteração. Resumindo: depois de adicionar um usuário a um grupo, saia e volte.

¹ Dois, na verdade: efetivos e reais - mas eu não vou entrar nisso aqui, pois isso se aplica apenas aos programas setuid / setgid.

    
por 29.01.2014 / 02:48