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 sachin do usuário esteja no grupo foo, e os bits do grupo para / home / foo / estejam configurados como rwx, o sachin não pode acessar / home / foo /. Eu não sou capaz de entender isso.
Mas, se na etapa de saída, eu alternar para usuário sachin da raiz, isso é o que acontece:
# 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?
Uma solução sugerida foi usar newgrp
, que atualiza o grupo e outras informações do usuário. Então, se eu fizer newgrp - sachin
, eu obtenho acesso ao diretório do usuário recém-criado, mas se eu criar mais um usuário e seguir as mesmas etapas, sachin
não terá acesso ao diretório de usuários mais recente.
Esse comportamento é de fato muito desconcertante.
Qualquer explicação seria muito apreciada.