Permissões de grupo incompatíveis no Linux - É um bug?

2

Estou no Ubuntu 11.04. Estou criando outro usuário e colocando um usuário existente no grupo de outro usuário, esperando escrever no diretório home de outro usuário.

# uname -a
Linux vini 2.6.38-11-generic #50-Ubuntu SMP Mon Sep 12 21:18:14 UTC
2011 i686 athlon i386 GNU/Linux
# whoami
sachin
# su root
# useradd -m -U foo               // create user foo
# usermod -a -G foo sachin      // add user 'sachin' to group 'foo'
# chmod 770 /home/foo/
# exit
# whoami
sachin
# cd /home/foo/
bash: cd: /home/foo/: Permission denied
# groups sachin
sachin : sachin foo

Isso é totalmente estranho. Embora o usuário sachin esteja no grupo foo e os bits de grupo para / home / foo / estejam configurados como rwx, sachin não pode acessar / home / foo /. Eu não sou capaz de entender isso.

Mas, se na etapa exit , eu alterno para sachin user da raiz, acontece o seguinte:

# uname -a
Linux vini 2.6.38-11-generic #50-Ubuntu SMP Mon Sep 12 21:18:14 UTC
2011 i686 athlon i386 GNU/Linux
# whoami
sachin
# su root
# useradd -m -U foo               // create user foo
# usermod -a -G foo sachin      // add user 'sachin' to group 'foo'
# chmod 770 /home/foo/
# su sachin
# whoami
sachin
# cd /home/foo/
# ls
examples.desktop

Agora, o que está acontecendo aqui é totalmente incompreensível. O su sachin herda algumas permissões do usuário root nesta etapa?

Qualquer explicação seria muito apreciada.

    
por Sachin 16.06.2012 / 20:33

2 respostas

1

Efetue o logout e, em seguida, faça o login novamente, ele funcionará ou você poderá usar um novo terminal (não o gnome-terminal, os dispositivos tty).

Parece ser um bug, pois o requisito deste logout e login é completamente desnecessário.

    
por ruhil 17.06.2012 / 12:18
1

Quais são as permissões de / home? Você precisa de + x permissões também.

Além disso, você precisa usar su - sachin para chegar ao ambiente completo do novo usuário.

Observe que a página man do useradd agora diz:

   useradd is a low level utility for adding users. On Debian,
   administrators should usually use adduser(8) instead.

Se você estiver usando uma versão de desktop / GUI, as coisas geralmente funcionam mais facilmente com a ferramenta users-admin .

O usuário com o shell ativo não herdará o novo grupo nesta sessão (supondo que você esteja fazendo isso como no exemplo ou por script) - você precisa ter um novo shell para esse usuário testar associação ao grupo. (A menos que você seja root.) Este é um comportamento antigo do Unix - então você normalmente iniciaria um novo processo shell para o usuário, por exemplo, abrindo um novo terminal (que gera um novo shell, lendo seu ambiente por padrão), ou gerando um novo shell para o usuário no mesmo terminal.

    
por belacqua 16.06.2012 / 20:34