x бит в каталоге Arch Linux документация

x бит в каталоге Arch Linux документация

Я имею в виду следующееДокументация по спискам_контроля_доступа_Arch Linux

Говорится:

Предоставление разрешений на выполнение частных файлов на веб-сервере

Следующая методика описывает, как процессу, например веб-серверу, можно предоставить доступ к файлам, которые находятся в домашнем каталоге пользователя, не ставя под угрозу безопасность путем предоставления доступа всему миру.

Далее мы предполагаем, что веб-сервер работает как пользователь http и предоставляем ему доступ к домашнему каталогу geoffrey /home/geoffrey.

Первый шаг — предоставление разрешений на выполнение для пользователя http:

setfacl -m "u:http:--x" /home/geoffrey

Примечание: Для того чтобы процесс мог просмотреть содержимое каталога, необходимы разрешения на выполнение для каталога.

Итак, в приведенном выше примере они устанавливают разрешения на выполнение для пользователя http в каталоге /home/geoffrey. Насколько я понимаю, предоставление только бита выполнения для каталога НЕ позволит вам вывести список содержимого каталога, но позволит вам получить доступ к файлам (если вы знаете их имена + разрешения на указанные файлы в каталоге будут иметь правильные наборы разрешений). Так как же возможно, что с setfacl -m "u:http:--x" /home/geoffreyпользователем http (или процессом, как они называют) можно будет вывести список содержимого каталога? Что я упускаю?

Заранее спасибо!

решение1

Вам необходимо -xразрешение на каталог, чтобы иметь возможность доступа к нему и любым файлам в нем. Однако ваш доступ к файлам в каталоге зависит от разрешений файлов, а не самого каталога. Пока у вас есть права на выполнение родительского каталога (каталога), вам больше ничего не нужно для доступа к файлам, которые он содержит. Это проще всего продемонстрировать на примере:

$ sudo mkdir dir1 && echo "Hello world!" | sudo tee dir1/file1 && sudo chmod 700 dir1
Hello world!
$ ls -ld dir1/
drwx------ 2 root root 4096 Apr 12 16:09 dir1/
$ sudo ls -l dir1/
total 4
-rw-r--r-- 1 root root 13 Apr 12 16:09 file1

Имеет только rootдоступ, поэтому если мы попытаемся вывести список содержимого каталога или выполнить cat для файла, это не удастся:

$ ls dir1/
ls: cannot open directory 'dir1/': Permission denied
$ cat dir1/file1
cat: dir1/file1: Permission denied

Обратите внимание, что это catне удается, хотя у меня есть доступ на чтение файла. Теперь, если я дам своему пользователю доступ на выполнение к каталогу и попробую снова, я смогу прочитать файл:

$ sudo chmod 711 dir1/
$ ls -l
total 4
drwx--x--x 2 root root 4096 Apr 12 16:09 dir1
$ cat dir1/file1
Hello world!

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

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

Хотя эта заметка и плохо сформулирована, она не совсем неверна, просто неполна. Вам действительно нужны разрешения на выполнение, чтобыв полной меревывести список содержимого каталога. Без них вы можете видеть имена файлов, но не атрибуты:

$ ls -l
total 4
drwxr--r-- 2 root root 4096 Apr 12 16:09 dir1
$ ls -l dir1/
ls: cannot access 'dir1/file1': Permission denied
total 0
-????????? ? ? ? ?            ? file1

решение2

Вы ничего не упускаете: хотя большая часть этого документа верна, примечание неверно.

Он может пересекать ваш домашний каталог, в другой каталог. Этот другой каталог может быть читаемым и пересекаемым, и, следовательно, его содержимое может быть перечислено.

Я думаю, что сделать ваш дом пригодным только для пересечения — это хорошая идея, но я также думаю, что вы правы, описание того, что он делает, неверно.

  • Для просмотра имен файлов в каталоге вам необходимо разрешение на чтение.
  • Вам необходимо перекрестное разрешение на доступ к statфайлу (чтобы узнать что-либо о файле или открыть его).

Вы отправили отчет об ошибке?

Связанный контент