Какие разрешения необходимы для удаления файла в Unix?

В настоящее время у меня есть каталог (udir), который имеет только права на чтение и запись для всех пользователей. Этот каталог содержит два файла (file1 & file2)

Сначала я думал, что для доступа к удалению / удалению файла через (rm udir/file1) мне нужен был только доступ на запись (в каталог), но команда rm выдаст мне отказ в доступе. Когда я устанавливаю права на чтение, запись и выполнение, команда rm работает.

Очевидно, что доступ для выполнения также необходим, но зачем?

Я думал, что доступ для выполнения к каталогу должен был сделать его рабочим каталогом, искать его содержимое и обращаться к подкаталогам.

1 ответ

Вам на самом деле нужно read а также write разрешения для каталога, а не для самого файла, поскольку операция выполняется с учетом влияния разрешений для каталогов.

Хорошая документация может быть найдена по этой ссылке, которая упоминает ниже в разделе Особые соображения по каталогам:

Для удаления файла требуется как написать (чтобы изменить сам каталог), так и выполнить (для stat() индекс файла) в каталоге. Обратите внимание, что пользователю не нужны права доступа к файлу и владелец файла, чтобы удалить его!

Другие вопросы по тегам