Неможливо видалити файл - у дозволі відмовлено - чому?


13
[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, яка має дозвіл на файл, який я хочу видалити. Але я не в змозі. Будь-яка ідея чому?

update - дозвіл на батьківський каталог

drwxr-sr-x 2 корінь db2iadm1 4096 серпня 22 14:39 db2dump


2
Які дозволи на батьківський каталог? Див. Чому можна rmвидалити файли лише для читання?
ire_and_curses

Відповіді:


12

Для того, щоб видалити файл, ви повинні мати дозволи на запис у каталозі, в якому знаходиться файл. Коли ви rmстворюєте файл, він робить unlinkсистемний виклик, який видаляє ім'я з каталогу. Це видаляє файл лише у тому випадку, якщо він є останньою лінією, що залишилася до inode.

Додаткову інформацію ви можете знайти в посилання (2) .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.