Não é possível excluir um arquivo - permissão negada - por quê?

12
[db2inst1][testing ~/sqllib/db2dump] rm db2diag.log 
rm: cannot remove `db2diag.log': Permission denied
[db2inst1][testing ~/sqllib/db2dump] id
uid=1002(db2inst1) gid=107(db2iadm1) groups=16(dialout),33(video),107(db2iadm1),108(db2fadm1),1001(eduserver)
[db2inst1][testing ~/sqllib/db2dump] ll
total 1381172
-rw-rw-rw- 1 root db2iadm1 1412931954 Oct  2 10:24 db2diag.log

O usuário atualmente logado (db2inst1) faz parte do grupo db2iadm1 que possui permissão w para o arquivo que quero excluir. Mas eu não sou capaz. Alguma idéia do porquê?

update - permissão para o diretório pai

drwxr-sr-x 2 raiz db2iadm1 4096 22 de agosto 14:39 db2dump

Radek
fonte
2
Quais são as permissões no diretório pai? Consulte Por que rmremover arquivos somente leitura?
ire_and_curses

Respostas:

11

Para excluir um arquivo, você deve ter permissões de gravação no diretório em que o arquivo reside. Quando você faz rmum arquivo, ele faz a unlinkchamada de sistema que remove o nome do diretório. Isso exclui o arquivo apenas se este for o último link restante para o inode.

Você pode encontrar mais informações em unlink (2) .

jordanm
fonte