Linux - член группы не может удалить файл с правами rw

15

Ниже показан файл, /tmp/testfileпринадлежащий user1 с группой, измененной на wheel, которая также включает user2 . Файл имеет rwразрешение для группы. Так не должен ли кто-либо из членов группы удалить его? В приведенном ниже примере показано, что user2 не может удалить файл. Почему?

[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
user347765
источник
Кроме того, к полному объяснению @grawity, хорошее решение - создать свой «собственный» каталог tmpи исправить ситуацию с
ошибками

Ответы:

30

Во-первых, вы смотрите на неправильные разрешения. Когда вы перемещаете / переименовываете / удаляете файл, вы изменяете только родительский каталог - собственные разрешения файла не проверяются. Вы только удаляете запись из списка файлов каталога. Поэтому вы должны проверить разрешения родительского каталога (в этом случае /tmp).

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

Во-вторых, /tmpэто особенное. Практически во всех системах он доступен для записи любому ( ugo=rwx), поэтому на первый взгляд кажется, что любой может переименовать или удалить любой файл в нем. Это, конечно, облегчит (ну, еще проще) создание проблем для других пользователей, поэтому /tmpвсегда имеет режим «закрепления» или «ограниченное удаление» ( o+t). При установленном режиме только владелец файла может перемещать или удалять файлы в этом каталоге независимо от каких-либо разрешений.

(В GNU coreutils на chmod(1)странице справки есть раздел о «флаге ограниченного удаления или фиксированном бите» .)

user1686
источник
Я сталкиваюсь с той же самой проблемой из-за второго пункта специального липкого разрешения. Я попытался удалить его, chmod o-t /tmpа затем снова попытался удалить файл, но он все еще жалуется на то же самое.
Шашанк Агравал
1
Не только владелец файла может удалять файлы в указанном каталоге, но также root и владелец каталога (например, / tmp).
wulfgarpro