Ниже показан файл, /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
linux
permissions
file-permissions
user347765
источник
источник
tmp
и исправить ситуацию сОтветы:
Во-первых, вы смотрите на неправильные разрешения. Когда вы перемещаете / переименовываете / удаляете файл, вы изменяете только родительский каталог - собственные разрешения файла не проверяются. Вы только удаляете запись из списка файлов каталога. Поэтому вы должны проверить разрешения родительского каталога (в этом случае
/tmp
).Во-вторых,
/tmp
это особенное. Практически во всех системах он доступен для записи любому (ugo=rwx
), поэтому на первый взгляд кажется, что любой может переименовать или удалить любой файл в нем. Это, конечно, облегчит (ну, еще проще) создание проблем для других пользователей, поэтому/tmp
всегда имеет режим «закрепления» или «ограниченное удаление» (o+t
). При установленном режиме только владелец файла может перемещать или удалять файлы в этом каталоге независимо от каких-либо разрешений.(В GNU coreutils на
chmod(1)
странице справки есть раздел о «флаге ограниченного удаления или фиксированном бите» .)источник
chmod o-t /tmp
а затем снова попытался удалить файл, но он все еще жалуется на то же самое.