linux 下php 服務器權限問題

該段落出處:
來自開源中國社區—-關於linux下php權限問題
http://www.oschina.net/question/782079_141232

要設置安全的權限系統,你要先弄清楚以下幾個問題:

1. 網站的文件所有者帳號是什麼?

2.   apache/php-fpm以什麼帳號身份運行?

3. 網站哪些目錄需要有寫入權限(如日誌生成、附件上傳等)

針對這個問題,建議的設置如下:

1. 網站所有者,可設置爲ftp, www帳號

2. nginx/php-fpm/apache,建議以nobody帳號運行,反正不能使用網站文件所有者帳號。

3. 需要可寫權限的目錄,手工設置權限爲777即可

4. php生成的日誌、附件文件的所有者會是nobody, 這時www,ftp帳號卻無法修改、刪除這些文件。
    那麼在php生成文件時,可調用chmod($filename, 0777)。即解鈐還需系鈐人。


這樣,php腳本只能向指定的目錄中寫入文件,一方面規範了程序代碼的行爲,另一方面,也一定程度上提高了網站的安裝性。

權限配置:http://jingyan.baidu.com/article/9158e0008855e2a2541228e1.html

網站目錄文件權限的設置對網站的安全至關重要,下面簡單介紹網站目錄文件權限的基本設定。
我們假設http服務器運行的用戶和用戶組是www,網站用戶爲centos,網站根目錄是/home/centos/web。

我們首先設定網站目錄和文件的所有者和所有組爲centos,www,如下命令:
chown -R centos:www /home/centos/web

設置網站目錄權限爲750750是centos用戶對目錄擁有讀寫執行的權限,這樣centos用戶可以在任何目錄
下創建文件,用戶組有有讀執行權限,這樣才能進入目錄,其它用戶沒有任何權限。
find -type d -exec chmod 750 {} \;

設置網站文件權限爲640640指只有centos用戶對網站文件有更改的權限,http服務器只有讀取文件的權限,
無法更改文件,其它用戶無任何權限。
find -not -type d -exec chmod 640 {} \;

針對個別目錄設置可寫權限。比如網站的一些緩存目錄就需要給http服務有寫入權限。例如discuz x2的/data/目錄
就必須要寫入權限。
find data -type d -exec chmod 770 {} \;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章