Maison  >  Article  >  développement back-end  >  Que faire si php mkdir a des autorisations insuffisantes

Que faire si php mkdir a des autorisations insuffisantes

藏色散人
藏色散人original
2020-09-03 10:47:575781parcourir

Solution aux autorisations insuffisantes de php mkdir : 1. Modifiez les autorisations par défaut du système à 777 et spécifiez des autorisations plus élevées pour mkdir ; 2. Définissez la fonction chmod pour avoir des autorisations supérieures aux autorisations par défaut du système ; le système La commande mkdir définit des autorisations supérieures à celles par défaut.

Que faire si php mkdir a des autorisations insuffisantes

Recommandé : "Tutoriel vidéo PHP"

Problème d'autorisation avec la fonction mkdir() en php

Description du problème :

Utilisez le code php suivant pour créer un répertoire. L'autorisation attendue du répertoire est 0777, mais le résultat réel est 0755

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

Analyse. et résultats des tests :

1. Les autorisations de répertoire spécifiées par la fonction mkdir() ne peuvent être inférieures ou égales aux autorisations par défaut définies par l'umask système.

Par exemple, l'umask par défaut de Linux est généralement 0022, c'est-à-dire que l'autorisation par défaut pour créer un répertoire est 0755, donc à ce moment php mkdir('./aa/',0777) obtient l'autorisation du répertoire soit 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/

Changez les autorisations par défaut du système en 777, mkdir() peut spécifier des autorisations plus élevées

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. La fonction chmod() n'est pas affectée par l'umask du système, et peut définir des autorisations supérieures aux autorisations par défaut du système.

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. La commande mkdir du système peut définir des autorisations supérieures à la valeur par défaut.

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/

Résumé :

Si php souhaite créer un répertoire avec des autorisations de lecture et d'écriture, il est préférable d'utiliser le code suivant. N'utilisez pas directement la fonction mkdir pour spécifier les autorisations afin d'éviter le problème. impact du système umask

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn