Ответы:
Поскольку вы не можете «выполнить» каталог, бит выполнения был использован для лучшего использования. Бит выполнения в каталоге позволяет получить доступ к элементам, которые находятся внутри каталога, даже если вы не можете отобразить содержимое каталога.
$ mkdir -p dir/
$ echo 'Hello World!' > dir/file
$ chmod 000 dir/
$ ls -al dir/
ls: cannot open directory dir: Permission denied
$ cat dir/file
cat: dir/file: Permission denied
$ chmod +x dir/
$ ls -al dir/
ls: cannot open directory dir: Permission denied
$ cat dir/file
Hello World!
Из chmod
справочной страницы:
Буквы rwxXst выбирают биты режима файла для затронутых пользователей: чтение (r), запись (w), выполнение (или поиск каталогов) (x) , выполнение / поиск, только если файл является каталогом или уже имеет разрешение на выполнение для некоторых пользователь (X), установка идентификатора пользователя или группы при выполнении (ях), ограниченный флаг удаления или фиксированный бит (t).
Каталоги (обычно они не называются папками в * nix) имеют другое значение для битов разрешений, чем обычные файлы.
Для каталогов, запись позволяет создавать новые файлы внутри него.
Чтение позволяет вам перечислить файлы внутри него.
Выполнить позволяет вам ввести его и получить доступ к файлам (или другим каталогам) внутри.
Разрешения на выполнение каталога позволяют вам просматривать его, используя ресурсы, содержащиеся в нем.
Бит «выполнить» фактически означает «поиск» применительно к каталогам (из man chmod
). Это кажется разумным, так как выполнение не имеет значения для каталога.
x
Бит на папке ссылается на поиск индексации / каталог / список; ничего из этого невозможно, если вы держите этот бит на низком уровне.
Вот пример его использования: если вы хотите иметь пользователя с ограниченными разрешениями на чтение для каждого каталога, кроме его домашнего, скажем /home/dummy
, вам нужно создать /
и /home
установить x
бит, иначе он не сможет даже добраться до своего домашнего каталога.
cd
), вы вводите (выполняете) его.