Eu criei um diretório chamado newDir
e alterei o grupo ao qual ele pertence com mkdir newDir && chgrp test-group newDir
.
Eu era usuário me
quando fiz isso.
A chamada stat newDir
produz a saída esperada:
File: newDir
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 801h/2049d Inode: 10756102 Links: 2
Access: (0755/drwxr-xr-x) Uid: ( 1001/ me) Gid: ( 1003/test-group)
Access: 2018-01-27 17:03:07.514864274 +0100
Modify: 2018-01-27 17:03:07.514864274 +0100
Change: 2018-01-27 17:05:08.317543163 +0100
Birth: -
Mais tarde, logado como usuário otherUser
, tentei definir o bit de permissão do ID do grupo (setgid) no diretório usando chmod g+s newDir
.
Infelizmente, vejo stat
que as permissões não mudaram. Porém, não recebi nenhum erro no stderr e o resultado do chmod
comando é 0, conforme mostrado por echo $?
.
Por que chmod g+s newDir
não surtiu efeito?
Estou no Arch Linux 4.14.13.
O motivo do
chmod g+s newDir
não sucesso ao executar como usuáriootherUser
, é queotherUser
não fazia parte de grouptest-group
, que é o grupo denewDir
.Mudar para um usuário que faz parte
test-group
echmod g+s newDir
funciona muito bem.A adição à resposta de Matthias, se você quisesse fazer isso numericamente e absolutamente, seria
Se você quiser se adicionar ao grupo que está segmentando:
Às vezes, o newgrp não parece atualizar os grupos, portanto, pode ser necessário fazer login novamente.
Estranho que alguém tenha que fazer parte do grupo para o qual está tentando definir o bit GUID e que falhe sem erro, mas é assim que é.