Temos imagens Linux baseadas em RH; no qual tenho que "aplicar" alguns "arquivos especiais" para atualizá-los para a versão de desenvolvimento mais recente do nosso produto.
A pessoa que criou o arquivo concluiu que dentro da nossa imagem de base, algumas permissões estão erradas; então nos disseram para correr
sudo chgrp -R nobody /whatever
Nós fizemos isso; e mais tarde, quando nosso aplicativo está sendo executado, surgiram problemas obscuros.
O que eu achei mais tarde: a chamada para chgrp irá limpar as informações bit setuid em nossos binários dentro / whatever.
E o problema real é: alguns de nossos binários devem ter esse bit setuid definido para funcionar corretamente.
Para encurtar a história: existe uma maneira de executar esse comando "chgrp" sem matar meus bits setuid?
Eu apenas executei o seguinte no meu Ubuntu local; levando ao mesmo resultado:
mkdir sticky
cd sticky/
touch blub
chmod 4755 blub
ls -al blub
-> mostra o nome do arquivo com fundo vermelho -> sim, sim, setuid
chgrp -R myuser .
ls -al blub
-> mostra o nome do arquivo sem fundo vermelho -> setuid desapareceu
setuid
bit, não o sticky
bit. (2) Não limpar o setuid
bit quando você faz chgrp
ou chown
seria um problema de segurança.
4XXX
bit é chamado bit setuid (s
), não pegajoso. Pegajosa é ot
bit e seu objetivo é um pouco diferente: en.wikipedia.org/wiki/Sticky_bit