As permissões de grupo do Linux não estão sendo aplicadas corretamente.

18

Estou executando o servidor Ubuntu 10.04 e estou tendo algumas experiências contra-intuitivas com usuários / grupos. Por exemplo:

sudo touch test_file                    # create empty file

sudo groupadd test                      # create 'test' group

sudo chown root:test test_file          # change group of file to 'test'

sudo chmod g+rwx test_file              # give write permissions to group

sudo usermod -a -G test {my-user}       # add my user to 'test' group

touch test_file                         # touch the file as my current user

A última linha produz um erro de permissão.

Eu garanto que meu usuário faz parte do grupo 'teste' ( groups {my-user}confirma isso). O grupo test_file também está definitivamente definido como 'test' e as permissões do grupo estão definidas.

Por que meu usuário não pode gravar no arquivo de teste?

Gordon
fonte

Respostas:

29

Ao adicionar um usuário a um novo grupo, isso não será aplicado em nenhum processo atualmente em execução, apenas em novos. Você precisa sair e depois entrar novamente.

Daenyth
fonte
4
ou invadir su - usernameseu console em execução. Você não tem que o logout para o login dessa forma :)
Matthias Krull
5

Os métodos de logout e reinicialização do servidor não funcionaram para mim.

Este método, no entanto, está funcionando para mim: (referência a esta resposta )

chmod g+rwxs <parent folder>
soma de verificação
fonte
11
O que a +speça faz? Obrigado.
Tommy.carstensen
11
Ele define o bit setuid. Isso permite que um arquivo seja executado como o proprietário do arquivo. Suponha que você tenha um arquivo que deseja executar como root, independentemente de quem a pessoa estiver executando, você definiria o bit setuid para esse arquivo.
Julius
A chave era x: parece que são necessários direitos de execução touchpara funcionar.
asac - Restabelece Monica
0

Você pode usar o newgrpcomando para alterar o ID do grupo atual do usuário. De man newgrp:

O comando newgrp é usado para alterar o ID do grupo atual durante uma sessão de login. Se o -sinalizador opcional for fornecido, o ambiente do usuário será reinicializado como se o usuário estivesse conectado, caso contrário, o ambiente atual, incluindo o diretório de trabalho atual, permanecerá inalterado.

Pausado até novo aviso.
fonte
11
Isso também tem o efeito de substituir o seu grupo atual. Nem sempre é uma boa ideia.
Daenyth
Eu rebaixaria isso se pudesse. Substituir grupos pode ser muito frustrante no futuro ... esp. com -Ropção!
Edward
0

Reinicie o computador para garantir que nenhum processo bloqueado impeça que o usuário e os grupos sejam aplicados corretamente durante o logout e o login.

Essas etapas devem dar ao usuário do grupo testa permissão de gravação emtest_file

sudo touch test_file 
sudo groupadd test
sudo chown root:test test_file
sudo chmod g+rwx test_file
sudo usermod -a -G test {my-user}

Reinicie o computador ou efetue logout do sistema operacional do seu usuário. Uma reinicialização do terminal não é suficiente.

touch test_file

O usuário pode gravar no arquivo porque faz parte do grupo 'test' e o grupo tem permissão rwx.

Eric Leschinski
fonte
3
Não é necessário reiniciar o computador.
precisa