Heim > Backend-Entwicklung > PHP-Tutorial > 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

高洛峰
Freigeben: 2023-03-03 20:18:01
Original
1500 Leute haben es durchsucht

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);
Nach dem Login kopieren

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/
Nach dem Login kopieren

Ä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/
Nach dem Login kopieren

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/
Nach dem Login kopieren

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/
Nach dem Login kopieren

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);
Nach dem Login kopieren

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!


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage