ホームページ  >  記事  >  バックエンド開発  >  PHP の mkdir() 関数は、フォルダーに対するより安全な権限設定方法を作成します。

PHP の mkdir() 関数は、フォルダーに対するより安全な権限設定方法を作成します。

高洛峰
高洛峰オリジナル
2016-12-21 15:17:181437ブラウズ

問題の説明:
次の 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 が読み取りおよび書き込み権限を持つディレクトリを作成したい場合は、システム umask の影響を避けるために、mkdir 関数を直接使用して権限を指定しないことをお勧めします

より安全な権限設定方法であるフォルダーを作成する php mkdir( ) 関数の詳細 関連記事については、PHP 中国語 Web サイトに注目してください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。