Вот полномочия, данные на машине:
drwxrwxrwx 4 root root 512 May 16 09:32 STC_10
drwxrw-rw- 4 root root 512 May 5 11:22 STC_11
Теперь вот проблема:
cd STC_11
-bash: cd: STC_11: Permission denied
Но эти работы:
-bash-4.0$ cd STC_10
-bash-4.0$ ls
Codemgr_wsdata src
Почему нам нужно разрешение выполнения сделать досягаемость тот каталог STC_11
? Полномочия чтения-записи привычки достаточны?
ls
команда на STC_11
работал бы.
Для следующей демонстрации я создал несколько каталогов:
$ mkdir read_only
$ mkdir exec_only
$ mkdir r_e
$ touch read_only/cant_open
$ echo foo > read_only/cant_open
$ echo bar > exec_only/cant_find
$ echo baz > r_e/normal
$ chmod 400 read_only/
$ chmod 100 exec_only/
$ chmod 500 r_e/
Читайте полномочия достаточны для списка содержания каталога: ls(1)
не может найти детали о файле, но он может сказать Вам название файла.
$ ls read_only/
ls: cannot access read_only/cant_open: Permission denied
cant_open
Но доступ только для чтения не позволяет Вам пересечь каталог:
$ cat read_only/cant_open
cat: read_only/cant_open: Permission denied
Выполнитесь полномочия достаточны для пересечения каталога (включая cd
), но Вы не можете перечислить содержание:
$ ls exec_only/
ls: cannot open directory exec_only/: Permission denied
Даже при том, что Вы не можете получить список файлов в каталоге, можно все еще пересечь каталог:
$ cat exec_only/cant_find
bar
Оба чтения и выполняют работу полномочий, как Вы ожидаете:
$ ls r_e
normal
$ cat r_e/normal
baz
В то время как это первоначально сбивает с толку, чтобы иметь разрешение перечислить файлы в каталоге, но не смочь сделать что-либо с ними, и это также сбивает с толку, чтобы иметь разрешение сделать вещи с файлами, но не смочь перечислить их, это - часть традиции Unix простых механизмов, используемых для умных вещей: одни только эти два элемента помогают реализовать Основанную на возможности безопасность. Если бы я должен был поместить несколько тысяч файлов в каталог, но только хотел, чтобы некоторые люди считали файлы, предназначенные для них, то я мог легко выбрать неотгадываемые имена файлов и выделить имена файлов, когда люди дают мне деньги для чтения файлов.:)
Или, возможно, у Вас есть дюжина клиентов, и Вы хотите, чтобы у них всех был доступ к каталогу файлов, предназначенных для них. Если Вы помещаете всю информацию о клиенте в единственный каталог только с доступом на выполнение, они никогда не могли определять Ваши другие клиенты, если они уже не знают, что другой человек является клиентом.
x
разрешение не просто означает, "Выполняются". Это зависит от того, где это применяется. На файле это дает разрешение выполнить файл. На каталоге это дает разрешение измениться на каталог. Я не думаю, что это имеет непосредственное отношение к структуре файловой системы.