在linux系統中,即使我們使用root帳號去手工執行php命令:
mkdir('test', 0777);結果檔案的許可權依然為:
drwxr-xr-x 2 root root 4096 jun 17 11:28 test很明顯這個許可權是 755
為什麼會這樣呢?
在linux系統中在建立檔案/資料夾時有乙個預設許可權,此許可權受 umask 設定影響,在/etc/bashrc配置檔案中我們可以找到如下配置:
# by default, we want this to get set.這裡就說明了問題,linux系統中預設的umask為022,與我們的777 &運算之後,就變成了 755,這就是原因所在了。# even for non-interactive, non-login shells.
if [ $uid -gt 99 ] && [ "`id -gn`" = "`id -un`" ]; then
umask 002
else
umask 022
fi
解決辦法:
你可能會想到,我把這裡的022 改為 000 不就可以了麼?
當然可以,不過這裡的設定直接影響到linux系統的預設許可權設定,不僅僅是php的問題。所以不建議您這麼做。
正確的做法應該是:
mkdir('test', 0777);
chmod('test', 0777);
先建立目錄,再使用chmod將許可權修改為 777 ,這樣就達到我們的目的了。
最後,需要注意一點,許可權值最好使用八進位制表示,即「0」開頭,而且一定不要加引號。
我就犯了乙個錯,加了引號
chmod('test', '0777'); // 錯誤,不要加 引號('')
Linux 中的許可權 0666 和 0777
linux 系統中採用三位十進位制數表示許可權,如0755,0644.abcd a 0,表示十進位制 b 使用者 c 組使用者 d 其他使用者 0 no excute no write no read x 1 excute,no write,no read w 2 write wx 3 write,...
CentOS安裝wordpress許可權問題
最近在centos6.5上安裝wordpress,遇上乙個問題,安裝好之後外網總是不能再網頁進行配置,想了半天應該是源 檔案的許可權問題,具體問題與解決如下 如果你的wordpress安裝目錄是wordpress,則通過預設嚮導配置會出現許可權不足的情況 sorry,but i can t writ...
版本控制工具Git GitLab中的許可權問題介紹
一 角色 gitlab定義了以下幾個角色 a.guest 訪客。b.reporter 報告者 可以理解為測試員 產品經理等,一般負責提交issue等。c.developer 開發者 負責開發。d.master 主人 一般是組長,負責對master分支進行維護。e.owner 擁有者 一般是專案經理。...