php的mkdir()函數建立檔案夾比較安全的使用權限設定方法,
問題描述:
使用以下php代碼建立了一個目錄,期望目錄的許可權是0777,實際結果是0755
複製代碼 代碼如下:mkdir('./aa/',0777);
分析與測試結果:
1.mkdir()函數指定的目錄許可權只能小於等於系統umask設定的預設許可權。
如linux預設的umask一般0022, 即建立目錄的預設許可權是0755, 所以這時php mkdir('./aa/',0777) 得到目錄的許可權是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/
把系統預設許可權改為777,mkdir()可以指定更大許可權了
複製代碼 代碼如下:
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()函數不受系統umask影響,可以設定比系統預設許可權大的許可權。
複製代碼 代碼如下:
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.系統的mkdir命令可以設定大於預設值的許可權。
複製代碼 代碼如下:
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/
總結:
php若要建立一個有讀寫權限的目錄,最好使用以下代碼,不要直接使用mkdir函數指定許可權,以避免系統umask的影響
複製代碼 代碼如下:
mkdir('./xw/');
chmod('./xw/',0777);
http://www.bkjia.com/PHPjc/851347.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/851347.htmlTechArticlephp的mkdir()函數建立檔案夾比較安全的使用權限設定方法, 問題描述: 使用以下php代碼建立了一個目錄,期望目錄的許可權是0777,實際結果是0755...