Heim  >  Artikel  >  Backend-Entwicklung  >  Die mkdir()-Funktion von PHP erstellt eine sicherere Methode zum Festlegen von Berechtigungen für Ordner

Die mkdir()-Funktion von PHP erstellt eine sicherere Methode zum Festlegen von Berechtigungen für Ordner

高洛峰
高洛峰Original
2016-12-21 15:17:181456Durchsuche

Problembeschreibung:
Verwenden Sie den folgenden PHP-Code, um ein Verzeichnis zu erstellen. Die erwarteten Verzeichnisberechtigungen sind 0777, aber das tatsächliche Ergebnis ist 0755

mkdir('./aa/',0777);

Analyse- und Testergebnisse:

1 Die durch die Funktion .mkdir() angegebenen Verzeichnisberechtigungen können nur kleiner oder gleich den von der System-umask festgelegten Standardberechtigungen sein.

Zum Beispiel ist die Standard-Umask von Linux im Allgemeinen 0022, das heißt, die Standardberechtigung zum Erstellen eines Verzeichnisses ist 0755, sodass php mkdir('./aa/',0777) zu diesem Zeitpunkt die Berechtigung erhält des Verzeichnisses auf 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/

Ändern Sie die Standardberechtigungen des Systems auf 777, mkdir() kann höhere Berechtigungen angeben

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()-Funktion ist davon nicht betroffen die System-Umask und kann Berechtigungen festlegen, die über die Standardberechtigungen des Systems hinausgehen.

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. Der mkdir-Befehl des Systems kann Berechtigungen festlegen, die über dem Standardwert liegen.

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/

Zusammenfassung:

Wenn PHP ein Verzeichnis mit Lese- und Schreibberechtigungen erstellen möchte, verwenden Sie am besten den folgenden Code. Verwenden Sie nicht direkt die Funktion mkdir, um Berechtigungen anzugeben Vermeiden Sie die Auswirkungen von System umask

mkdir('./xw/');
chmod('./xw/',0777);

Weitere verwandte Artikel über die mkdir()-Funktion von PHP zum Erstellen von Ordnern und eine sicherere Methode zum Festlegen von Berechtigungen finden Sie auf der chinesischen PHP-Website!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn