Fan*_*Lin 2 linux permissions acl
我正在设置一个 nginx 服务器。我创建一个用户 nginx 来运行服务器。我在另一个用户胜利者的家里有一些数据。我尝试设置ACL让nginx读取这些数据;这就是我所做的。
数据的位置:
/home/victor/web/folder/folder2/folder3/data
Run Code Online (Sandbox Code Playgroud)
我想让 nginx 读取这些文件,以便我创建一个文件夹
/home/victor/webshare/
Run Code Online (Sandbox Code Playgroud)
我在 victor 文件夹上设置了 ACL
# file: victor
# owner: victor
# group: victor
user::rwx
user:nginx:--x
group::---
mask::--x
other::---
Run Code Online (Sandbox Code Playgroud)
我不想让 nginx 看到 victor 文件夹下的其他内容,所以我将其设置为仅执行。我还在网络共享上设置了 ACL
# file: webshare
# owner: victor
# group: victor
user::rwx
user:nginx:r-x
group::---
mask::--x
other::---
Run Code Online (Sandbox Code Playgroud)
现在,我可以ls/home/victor/webshare/
[nginx@ home]#ls victor/webshare
hello static
Run Code Online (Sandbox Code Playgroud)
为了让 nginx 访问 data 中的文件,我创建了一个静态符号链接。
ln -s /home/victor/web/folder/folder2/folder3/data static
Run Code Online (Sandbox Code Playgroud)
我还设置了 ACL,让 nginx 可以访问数据文件夹;然而,它不起作用。
[nginx@ home]#ls victor/webshare/static
ls: victor/webshare/static: Permission denied
Run Code Online (Sandbox Code Playgroud)
为什么nginx帐户无法读取静态符号链接?如何在不暴露其他重要数据的情况下将数据暴露给 nginx?
要使用符号链接访问文件,您需要对该符号值经过的所有目录具有访问权限。因此,您必须确保 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
Run Code Online (Sandbox Code Playgroud)
对于文件夹,搜索 (x) 权限就足够了(只要软件不需要扫描目录中的文件列表 - 它必须知道文件名)。当然,对于必须访问的文件,nginx 也必须能够读取这些文件。