我正在设置一个nginx服务器。我创建了一个用于运行服务器的用户nginx。而且我在另一个用户的家中有一些数据,胜利者。我尝试设置ACL让nginx读取这些数据;这就是我所做的。
数据的位置:
/home/victor/web/folder/folder2/folder3/data
我想让nginx读取这些文件,以便我创建一个文件夹
/home/victor/webshare/
我在victor文件夹上设置了ACL
# file: victor
# owner: victor
# group: victor
user::rwx
user:nginx:--x
group::---
mask::--x
other::---
我不希望从nginx看到victor文件夹下的其他内容,所以我将其设置为仅执行。我还在webshare上设置了ACL
# 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?
答案 0 :(得分:4)
要使用符号链接访问文件,您需要对符号值通过的所有目录具有访问权限。因此,您必须确保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
对于文件夹,search(x)权限就足够了(只要软件不需要扫描目录中的文件列表 - 它必须知道文件名)。对于它必须访问的文件,nginx当然也必须能够读取文件。