Какие разрешения необходимы для удаления файла в Unix?
В настоящее время у меня есть каталог (udir), который имеет только права на чтение и запись для всех пользователей. Этот каталог содержит два файла (file1 & file2)
Сначала я думал, что для доступа к удалению / удалению файла через (rm udir/file1) мне нужен был только доступ на запись (в каталог), но команда rm выдаст мне отказ в доступе. Когда я устанавливаю права на чтение, запись и выполнение, команда rm работает.
Очевидно, что доступ для выполнения также необходим, но зачем?
Я думал, что доступ для выполнения к каталогу должен был сделать его рабочим каталогом, искать его содержимое и обращаться к подкаталогам.
1 ответ
Вам на самом деле нужно read
а также write
разрешения для каталога, а не для самого файла, поскольку операция выполняется с учетом влияния разрешений для каталогов.
Хорошая документация может быть найдена по этой ссылке, которая упоминает ниже в разделе Особые соображения по каталогам:
Для удаления файла требуется как написать (чтобы изменить сам каталог), так и выполнить (для stat() индекс файла) в каталоге. Обратите внимание, что пользователю не нужны права доступа к файлу и владелец файла, чтобы удалить его!