PHP mkdir 0777許可權問題

2021-09-08 18:46:03 字數 1008 閱讀 1825

在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.

# even for non-interactive, non-login shells.

if [ $uid -gt 99 ] && [ "`id -gn`" = "`id -un`" ]; then

umask 002

else

umask 022

fi

這裡就說明了問題,linux系統中預設的umask為022,與我們的777 &運算之後,就變成了 755,這就是原因所在了。

解決辦法:

你可能會想到,我把這裡的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 擁有者 一般是專案經理。...