2010-06-23 87 views
1

我正在設置一個nginx服務器。我創建了一個用於運行服務器的用戶nginx。我在另一個用戶的家裏有一些數據,勝利者。我嘗試設置ACL以讓nginx讀取這些數據;這是我做的。ACL和符號鏈接問題

數據的位置:

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

我想讓nginx的閱讀這些文件,所以我創建一個文件夾

/home/victor/webshare/ 

我設置勝利者文件夾中的ACL

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

我不想從nginx中看到victor文件夾下的其他東西,所以我將它設置爲只執行。而且我還設置ACL上Webshare的

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

現在,我可以ls到/ home /維克托/ Webshare的/

[[email protected] home]#ls victor/webshare 
hello static 

而對於nginx的訪問數據的文件,我創建了一個靜態的象徵鏈接。

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

我還設置ACL讓nginx觸摸數據文件夾;但是,它不起作用。

[[email protected] home]#ls victor/webshare/static 
ls: victor/webshare/static: Permission denied 

爲什麼不能從靜態符號鏈接讀取nginx帳戶?如何在不暴露其他重要數據的情況下將數據暴露給nginx?

回答

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 

對於文件夾,搜索(x)的權限就足夠了(只要該軟件並不需要掃描目錄中的文件列表 - 它必須知道文件名)。對於必須訪問的文件,當然,nginx也必須能夠讀取這些文件。