Questão Linux - membro do grupo não pode excluir o arquivo com permissão rw


Abaixo mostra um arquivo, /tmp/testfile, possuído por user1 com grupo alterado para roda que também inclui user2. O arquivo tem rw permissão para o grupo. Então, nenhum membro do grupo deveria poder deletá-lo? O exemplo de saída abaixo mostra que user2 não é capaz de 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

14


origem


possível duplicata de Por que não consigo excluir um arquivo no qual tenho permissões de gravação de grupo? - Hastur
Além da explicação completa por @grawity, uma boa solução é criar seu próprio diretório sob tmp e consertar a situação complicada - fcm


Respostas:


Primeiro, você está olhando para as permissões erradas. Quando você move / renomeia / apaga um arquivo, só modifica o arquivo Diretório Parental - as permissões do próprio arquivo não são verificadas. Você só remove uma entrada da lista de arquivos do diretório. Portanto, você deve verificar as permissões do diretório pai (neste caso /tmp).

$ ls -ld /tmp
drwxrwxrwt 15 root root 460 Jul 19 15:18 /tmp/

Segundo, /tmp é especial. Em praticamente todos os sistemas, é gravável por qualquer pessoa (ugo=rwxEntão, à primeira vista, parece que qualquer um poderia renomear ou excluir qualquer arquivo nele. Isso tornaria fácil (bem, ainda mais fácil) criar problemas para outros usuários, portanto /tmp sempre tem o modo "pegajoso", também conhecido como "exclusão restrita" (o+t). Com esse modo definido, somente o proprietário do arquivo pode mover ou excluir arquivos nesse diretório, independentemente de qualquer permissão.

(Em GNU coreutils, o chmod(1) página de manual tem uma seção sobre o "sinalizador de exclusão restrita ou bit pegajoso".)


29



Estou enfrentando o mesmo problema devido ao segundo ponto de especial permissão pegajosa. Eu tentei remover chmod o-t /tmp e, em seguida, tentou novamente excluir o arquivo, mas ainda está reclamando o mesmo. - Shashank Agrawal
Não só o dono do arquivo pode deletar arquivos sob dito diretório, mas também o root e o dono do diretório (por exemplo, / tmp). - wulfgarpro