Если у меня есть каталог, для которого пользователь имеет разрешение на чтение, почему невозможно проверить, есть ли файл в этом каталоге. Например, допустим, у меня есть папка /myfolder с разрешением на чтение. В этой папке есть какой-то файл 'garbage.txt' с разрешением на чтение (для пользователя). Когда я пытаюсь использовать stat /myfolder/garbage.txt, я получаю ошибку «Отказано в доступе». Если я добавлю разрешения на выполнение для /myfolder, я смогу проверить, существует ли garbage.txt.

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

2 ответа2

0

Разрешения на выполнение для каталога позволяют вам проходить через этот каталог. И вам нужно иметь возможность перейти в каталог, чтобы использовать stat для этого файла.

Также см. Https://stackoverflow.com/questions/790686/understanding-linux-directory-permissions-reasoning.

0

В папках Linux разрешения:

Бит записи позволяет уязвимому пользователю создавать, переименовывать или удалять файлы в каталоге и изменять атрибуты каталога.

Бит чтения позволяет затронутому пользователю перечислить файлы в каталоге

Бит выполнения позволяет затронутому пользователю войти в каталог и получить доступ к файлам и каталогам внутри

Липкий бит указывает, что файлы и каталоги в этом каталоге могут быть удалены или переименованы только их владельцем (или пользователем root).

Больше информации:

http://www.firewall.cx/linux-knowledgebase-tutorials/introduction-to-linux/299-linux-file-folder-permissions.html

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .