ACL和符号链接问题

时间:2010-06-23 04:54:03

标签: linux permissions acl

我正在设置一个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?

1 个答案:

答案 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当然也必须能够读取文件。