我會忘記這樣做的安全影響,並會下降到企業內斯:
如果你已經做了ls -l命令的/ var/www和ls -l命令/根,你會注意到,這兩個具有不同的權限:
$ ls -l命令/root/cr.txt共有2個 - rw-r ----- 1 root root 0 Jul 9 01:28 cr.txt $ ls -l/var/www total 2 -rw -r - r-- 1 www-data www-data 0 Jul 9 01 :28 somefile
/root只能讀取根目錄,而/ var/www可以被www-data用戶讀取。現在,如果您檢查apache進程,您會注意到它正在使用www-data用戶運行。
$ ps aux | grep apache www-data 5133 0.0 0.2 6512 1208? R + 10:04 0:00 apache
現在,您正在嘗試使apache運行時使用www-data用戶讀取文件。你可以採取三種行動方式:
1.將文件移動到/ var/www並更改它的權限,以便www-data用戶可以讀取它。
mv /root/cr.txt /var/www/
chown www-data:www-data /var/www/cr.txt
2.這是最好的方法。
Create a symlink to the file in the /var/www directory:
ln /root/cr.txt /var/www/
3.在某些情況下,這不會確保您的文件正在被讀取。
這很危險,不應該這樣做!在www數據用戶添加到root組,或更改文件的所有權,以便它可以通過www數據的用戶閱讀:
chown :www-data /root/cr.txt
## Or
sudo adduser www-data root
這不應該做的,如果你不理解的風險!
文件權限。 '/ root /'只能由服務器的root用戶訪問。 – ciruvan
嘗試更改file.txt的組作爲apache「chown root:apache file.txt」,然後爲組提供讀寫權限。 「chmod g + rw file.txt」。現在再試一次。讓我知道這是否有助於你。 –