Abaixo mostra um arquivo, /tmp/testfile
pertencente ao usuário1 com o grupo alterado para roda que também inclui o usuário2 . O arquivo tem rw
permissão para o grupo. Portanto, nenhum membro do grupo não deve excluí-lo? O exemplo de saída abaixo mostra que o usuário2 não pode excluir o arquivo. Por quê?
[user2@files ~]$ ls -l /tmp/testfile
-rw-rw-r-- 1 user1 wheel 0 Jul 18 18:54 /tmp/testfile
[user2@files ~]$ groups
user2 wheel
[user2@files ~]$ rm /tmp/testfile
rm: cannot remove `/tmp/testfile': Operation not permitted
linux
permissions
file-permissions
user347765
fonte
fonte
tmp
e corrigir a situação complicadaRespostas:
Primeiro, você está vendo as permissões erradas. Quando você move / renomeia / exclui um arquivo, você está apenas modificando o diretório pai - as permissões do arquivo não são verificadas. Você remove apenas uma entrada da lista de arquivos do diretório. Portanto, você deve verificar as permissões do diretório pai (neste caso
/tmp
).Segundo,
/tmp
é especial. Em praticamente todos os sistemas, é gravável por qualquer pessoa (ugo=rwx
); portanto, à primeira vista, parece que qualquer pessoa pode renomear ou excluir qualquer arquivo nele. Obviamente, isso facilitaria (bem, ainda mais) a criação de problemas para outros usuários, portanto,/tmp
sempre tem o modo "pegajoso" ou "exclusão restrita" definido (o+t
). Com esse modo definido, apenas o proprietário do arquivo pode mover ou excluir arquivos nesse diretório, independentemente de quaisquer permissões.(No GNU coreutils, a
chmod(1)
página de manual possui uma seção sobre o "sinalizador de exclusão restrita ou bit" ).)fonte
chmod o-t /tmp
e tentei excluir o arquivo novamente, mas ele ainda está reclamando.