php の mkdir() 関数は、フォルダーを作成するときに権限を設定するためのより安全な方法です。
問題の説明:
次の PHP コードを使用してディレクトリを作成します。ディレクトリの予期される権限は 0777 ですが、実際の結果は 0755 です
。
コードをコピーします コードは次のとおりです:
mkdir('./aa/',0777);
分析とテストの結果:
1. mkdir() 関数によって指定されるディレクトリ権限は、システム umask によって設定されるデフォルト権限以下のみにすることができます。
たとえば、Linux のデフォルトの umask は一般的に 0022、つまり、ディレクトリを作成するデフォルトの権限は 0755 なので、このとき php mkdir('./aa/',0777) はディレクトリの権限を取得します。 0755.
コードをコピーします コードは次のとおりです:
xw@xw-X201:~/デスクトップ/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:~/デスクトップ/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:~/デスクトップ/dd/aa$ umask 000
xw@xw-X201:~/Desktop/dd/aa$ php -r "mkdir('./xw2/',0777);"
xw@xw-X201:~/デスクトップ/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:~/デスクトップ/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:~/デスクトップ/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:~/デスクトップ/dd/aa$ umask
0022
xw@xw-X201:~/デスクトップ/dd/aa$ mkdir -m0777 xw
xw@xw-X201:~/デスクトップ/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 が読み取りおよび書き込み権限を持つディレクトリを作成したい場合は、システム umask の影響を避けるために、mkdir 関数を直接使用して権限を指定しないでください。
コードをコピーします コードは次のとおりです:
mkdir('./xw/');
chmod('./xw/',0777);
http://www.bkjia.com/PHPjc/851347.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/851347.html技術記事 PHP の mkdir() 関数は、フォルダーを作成するときにアクセス許可を設定するためのより安全な方法です。 問題の説明: 次の PHP コードを使用してディレクトリを作成します。しかし、実際の結果は 0755 です。