ACL и проблема символической ссылки - PullRequest
1 голос
/ 23 июня 2010

Я настраиваю сервер nginx. Я создаю пользователя nginx для запуска сервера. И у меня есть некоторые данные в доме другого пользователя, победителя. Я пытаюсь установить ACL, чтобы nginx мог читать эти данные; вот что я сделал.

Расположение данных:

/home/victor/web/folder/folder2/folder3/data

Я хочу, чтобы nginx прочитал эти файлы, чтобы я создал папку

/home/victor/webshare/

И я установил ACL на папку victor

# file: victor
# owner: victor
# group: victor
user::rwx
user:nginx:--x
group::---
mask::--x
other::---

Я не хочу, чтобы другие вещи из папки victor были видны из nginx, поэтому я установил их только для выполнения. И я также установил ACL на webshare

# file: webshare
# owner: victor
# group: victor
user::rwx
user:nginx:r-x
group::---
mask::--x
other::---

Сейчас я могу ls / home / victor / webshare /

[nginx@ home]#ls victor/webshare
hello  static

И для nginx для доступа к файлам в данных я создаю статическую символическую ссылку.

ln -s /home/victor/web/folder/folder2/folder3/data static

Я также установил ACL, чтобы nginx мог касаться папки данных; однако это не работает.

[nginx@ home]#ls victor/webshare/static
ls: victor/webshare/static: Permission denied

Почему учетная запись nginx не может читать статическую символическую ссылку? Как я могу предоставить данные в nginx, не раскрывая при этом и другие важные данные?

1 Ответ

4 голосов
/ 23 июня 2010

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

/
/home
/home/victor
/home/victor/web
/home/victor/web/folder
/home/victor/web/folder/folder2
/home/victor/web/folder/folder2/folder3
/home/victor/web/folder/folder2/folder3/data

Для папок достаточно разрешения поиска (x) (если программе не нужно сканировать список файлов в каталоге - она ​​должна знать имена файлов). Конечно, для файлов, к которым он должен получить доступ, nginx должен иметь возможность читать файлы.

...