php中mkdir()函數(shù)的權(quán)限問(wèn)題分析
問(wèn)題描述:
使用以下php代碼創(chuàng)建了一個(gè)目錄,期望目錄的權(quán)限是0777,實(shí)際結(jié)果是0755
mkdir('./aa/',0777);
分析與測(cè)試結(jié)果:
1.mkdir()函數(shù)指定的目錄權(quán)限只能小于等于系統(tǒng)umask設(shè)定的默認(rèn)權(quán)限。
如linux默認(rèn)的umask一般0022, 即創(chuàng)建目錄的默認(rèn)權(quán)限是0755, 所以這時(shí)php mkdir('./aa/',0777) 得到目錄的權(quán)限是0755.
xw@xw-X201:~/Desktop/dd/aa$ umask
0022
xw@xw-X201:~/Desktop/dd/aa$ php -r "mkdir('./xw/',0777);"
xw@xw-X201:~/Desktop/dd/aa$ php -r "mkdir('./xw1/',0755);"
xw@xw-X201:~/Desktop/dd/aa$ php -r "mkdir('./xw2/',0747);"
xw@xw-X201:~/Desktop/dd/aa$ ll
總用量 20
drwxrwxrwx 5 xw xw 4096 2012-06-01 11:58 ./
drwxr-xr-x 6 xw xw 4096 2012-06-01 11:26 ../
drwxr-xr-x 2 xw xw 4096 2012-06-01 11:57 xw/
drwxr-xr-x 2 xw xw 4096 2012-06-01 11:58 xw1/
drwxr--r-x 2 xw xw 4096 2012-06-01 11:58 xw2/
把系統(tǒng)默認(rèn)權(quán)限改為777,mkdir()可以指定更大權(quán)限了
xw@xw-X201:~/Desktop/dd/aa$ umask 000
xw@xw-X201:~/Desktop/dd/aa$ php -r "mkdir('./xw2/',0777);"
xw@xw-X201:~/Desktop/dd/aa$ ll
總用量 12
drwxrwxrwx 3 xw xw 4096 2012-06-01 12:08 ./
drwxr-xr-x 6 xw xw 4096 2012-06-01 11:26 ../
drwxrwxrwx 2 xw xw 4096 2012-06-01 12:08 xw2/
2.chmod()函數(shù)不受系統(tǒng)umask影響,可以設(shè)置比系統(tǒng)默認(rèn)權(quán)限大的權(quán)限。
xw@xw-X201:~/Desktop/dd/aa$ umask
0022
xw@xw-X201:~/Desktop/dd/aa$ php -r "mkdir('./xw1/',0777);"
xw@xw-X201:~/Desktop/dd/aa$ php -r "mkdir('./xw2/');"
xw@xw-X201:~/Desktop/dd/aa$ php -r "mkdir('./xw3/');chmod('./xw3/',0777);"
xw@xw-X201:~/Desktop/dd/aa$ ll
總用量 20
drwxrwxrwx 5 xw xw 4096 2012-06-01 12:12 ./
drwxr-xr-x 6 xw xw 4096 2012-06-01 11:26 ../
drwxr-xr-x 2 xw xw 4096 2012-06-01 12:11 xw1/
drwxr-xr-x 2 xw xw 4096 2012-06-01 12:11 xw2/
drwxrwxrwx 2 xw xw 4096 2012-06-01 12:12 xw3/
3.系統(tǒng)的mkdir命令可以設(shè)置大于默認(rèn)值的權(quán)限。
xw@xw-X201:~/Desktop/dd/aa$ umask 0022 xw@xw-X201:~/Desktop/dd/aa$ mkdir -m0777 xw xw@xw-X201:~/Desktop/dd/aa$ ll 總用量 12 drwxrwxrwx 3 xw xw 4096 2012-06-01 12:18 ./ drwxr-xr-x 6 xw xw 4096 2012-06-01 11:26 ../ drwxrwxrwx 2 xw xw 4096 2012-06-01 12:18 xw/
總結(jié):
php若要?jiǎng)?chuàng)建一個(gè)有讀寫(xiě)權(quán)限的目錄,最好使用以下代碼,不要直接使用mkdir函數(shù)指定權(quán)限,以避免系統(tǒng)umask的影響
mkdir('./xw/');
chmod('./xw/',0777);
相關(guān)文章
PHP在獲取指定目錄下的目錄,在獲取的目錄下面再創(chuàng)建文件,多平臺(tái)
PHP在獲取指定目錄下的目錄,在獲取的目錄下面再創(chuàng)建文件,多平臺(tái),需要的朋友可以參考下。2011-08-08
IIS+fastcgi下PHP運(yùn)行超時(shí)問(wèn)題的解決辦法詳解
本篇文章是對(duì)IIS+fastcgi下PHP運(yùn)行超時(shí)問(wèn)題的解決辦法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
PHP基于phpqrcode生成帶LOGO圖像的二維碼實(shí)例
這篇文章主要介紹了PHP基于phpqrcode生成帶LOGO圖像的二維碼,可實(shí)現(xiàn)生成帶logo與不帶logo兩種二維碼的功能,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下2015-07-07
php使用composer常見(jiàn)問(wèn)題及解決辦法
這篇文章主要介紹了php使用composer常見(jiàn)問(wèn)題及解決辦法,對(duì)composer感興趣的同學(xué),可以參考下2021-04-04
PHP中addslashes與mysql_escape_string的區(qū)別分析
這篇文章主要介紹了PHP中addslashes與mysql_escape_string的區(qū)別,簡(jiǎn)單分析了addslashes與mysql_escape_string在使用過(guò)程中的區(qū)別,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-04-04
PHP+MySQL實(shí)現(xiàn)模糊查詢員工信息功能示例
這篇文章主要介紹了PHP+MySQL實(shí)現(xiàn)模糊查詢員工信息功能,結(jié)合實(shí)例形式分析了php連接mysql數(shù)據(jù)庫(kù)及使用like語(yǔ)句進(jìn)行模糊查詢與顯示相關(guān)操作技巧,需要的朋友可以參考下2018-06-06

