項目在本地windows上運行好好地,上傳到linux系統上就各種權限問題,很是煩惱,當時就想:哪里有問題,哪里777~~~
雖然這樣當時是沒有問題的,但是在安全性上是也就降低了,找了個時間找了一些資料,發現一個還比較好的
服務器上項目是放在/alidata/www/default這個文件夾下
如果使用root 用戶上傳項目,則全部默認所有者和組為root,但是我仔細看了一下默認的那幾個文件的所有者和組都是www
根據文檔和自己的思考,設置步驟如下:
1、把網站目錄和文件所有者和組都設置為www
chown -R www:www /alidata/www/default
2.設置網站目錄權限為750,750是www這個用戶對目錄擁有讀寫執行的權限,這樣www用戶可以在任何目錄下創建文件,用戶組有有讀執行權限,這樣就有進入目錄的權限,其它用戶沒有任何權限。
chmod 750 /alidata/www/default cd /alidata/www/default find -type d -exec chmod 750 {} \;
3.設置網站文件權限為640,640指只有www用戶對網站文件有更改的權限,apache服務器只有讀取文件的權限,無法更改文件,其它用戶無任何權限。
find -not -type d -exec chmod 640 {} \;
4.需要針對個別目錄來設置權限,以Thinkphp為例,它的Runtime 目錄存儲的有日志文件,還有與數據庫做ORM映射的數據庫表信息,這說明apache服務器要對這些目錄
有訪問的權限,並且對於線面的日志文件有寫入的權限,那么這樣就需要對於這些特殊目錄設置。
cd /alidata/www/default find . -name "Runtime" -type d -exec chmod -R 770 {} \;
執行上面的命令請注意 “{}”與 “\”之間是有空格的,上面的-R參數是遞歸給Runtime 目錄下面的目錄和文件賦予 770 權限,當然了你會說日志文件是不需要執行權限的,
不過這里沒關系,當你把日志文件刪除掉之后,生成出來的文件是沒執行權限的。因為當你把日志文件刪除掉之后,那么生成日志文件的的用戶和所有者都是www
這樣整個站點你就可以通過這種方式管理起來了。文檔參考:http://www.cnblogs.com/stackflow/p/3928407.html
使用過程中發現我用的百度編輯器還不正常,我想起來我的一些外部插件都放在根下public下了,並且上傳圖片會放到upload下
所以照葫蘆畫瓢public下插件和upload750權限,default目錄下執行以下命令
find . -name "Uploads" -type d -exec chmod -R 770 {} \; find . -name "Public" -type d -exec chmod -R 770 {} \;
這樣就搞定了~~~
