Невозможно удалить файл - отказано в разрешении - почему?

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

Текущий зарегистрированный пользователь (db2inst1) является частью группы db2iadm1, у которой есть разрешение w на файл, который я хочу удалить. Но я не могу. Есть идеи почему?

обновление - разрешение для родительского каталога

drwxr-sr-x 2 root db2iadm1 4096 22 августа 14:39 db2dump

Радек
источник
2
Каковы разрешения на родительский каталог? См. Почему можно rmудалять файлы только для чтения?
ire_and_curses
Аналогично вопросу: Почему я не могу удалить этот файл как root? , Предложение: unix.stackexchange.com/a/206595/92974
Магнус

Ответы:

11

Чтобы удалить файл, вы должны иметь права на запись в каталог, в котором находится файл. Когда вы создаете rmфайл, он выполняет unlinkсистемный вызов, который удаляет имя из каталога. При этом файл удаляется только в том случае, если это последняя оставшаяся ссылка на индекс.

Вы можете найти больше информации в unlink (2) .

jordanm
источник