A maneira de fazer isso, conforme descrito na pergunta, está correta.
No entanto, quando você atualiza os grupos, as permissões do processo atual , incluindo seu shell, não são atualizadas. Portanto, no meu caso, groups
(o shell atual foi iniciado por bob
antes dos grupos serem alterados) e groups bob
(permissões atuais do usuário bob
) mostraram resultados diferentes:
$whoami
bob
$ groups bob # current membership of bob
bob alice
$ groups # shell run by bob BEFORE the groups changed
bob
$ cd /home/alice/dir
bash: cd: test: Permission denied
Então eu tive que fechar o shell, e até mesmo fechar o túnel (eu estava conectado à caixa do Ubuntu via túnel SSH) e abrir um novo shell (depois que eu conectei novamente ao SSH) e então eu vi
$whoami
bob
$ groups bob
bob alice
$ groups # current shell run by bob AFTER the groups changed
bob alice
$ cd /home/alice/dir
$ pwd
/home/alice/dir
Se bob
for um serviço, esse serviço será reiniciado!