La syntaxe de base de la fonction CHMOD est la suivante:
<span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-title function_ invoke__">chmod</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$filename</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$mode</span></span><span>);
</span></span>
$ nom de fichier : le chemin du fichier ou du répertoire qui doit être modifié.
MODE $ : La valeur numérique de l'autorisation cible (peut être au format octal), ou une notation symbolique comme RWX peut être utilisée.
Exemple :
<span><span><span class="hljs-variable">$file</span></span><span> = </span><span><span class="hljs-string">'example.txt'</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">chmod</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>, </span><span><span class="hljs-number">0644</span></span><span>); </span><span><span class="hljs-comment">// installationexample.txtLes autorisations du fichier sont644</span></span><span>
</span></span>
Dans cet exemple, 0644 est une représentation numérique des autorisations de fichiers, indiquant que le propriétaire de fichier peut lire et écrire des fichiers, et d'autres utilisateurs n'ont que des autorisations de lecture.
Dans les systèmes Linux et Unix, les autorisations de chaque fichier ou répertoire sont composées de trois parties: propriétaire de fichier (propriétaire), groupe d'utilisateurs (groupe) et autres utilisateurs (autres). Les autorisations de chaque pièce peuvent être définies séparément sur:
R (lire) : Lire l'autorisation, indiquant que l'utilisateur peut afficher le contenu du fichier.
W (Write) : Écrivez l'autorisation, indiquant que l'utilisateur peut modifier le contenu du fichier.
x (exécuter) : autorisation d'exécution, indiquant que l'utilisateur peut exécuter le fichier (s'il s'agit d'un script ou d'un programme).
La valeur d'autorisation est un numéro octal à trois chiffres qui indique les autorisations du propriétaire de fichier, du groupe d'utilisateurs et d'autres utilisateurs. Par exemple, 0644 signifie:
6 (RW-) : Le propriétaire du fichier a des autorisations de lecture et d'écriture, mais n'a pas d'autorisations d'exécution.
4 (R--) : Le groupe d'utilisateurs a lu l'autorisation.
4 (R--) : Les autres utilisateurs ont lu l'autorisation.
En mode numérique, les autorisations de fichiers sont spécifiées par trois nombres octaux. Chaque numéro représente les autorisations du propriétaire du fichier, du groupe d'utilisateurs et d'autres utilisateurs. Par exemple:
777 : Tous les utilisateurs ont lu, écrit et exécuté des autorisations (autorisations extrêmement élevées).
755 : Le propriétaire du fichier a toutes les autorisations et d'autres utilisateurs ne peuvent lire et exécuter que (couramment utilisé dans des fichiers ou des répertoires exécutables).
644 : Les propriétaires de fichiers peuvent lire et écrire, tandis que d'autres utilisateurs ne peuvent lire que (souvent utilisés dans les fichiers ordinaires).
La méthode symbolique consiste à utiliser des lettres et des symboles pour représenter les autorisations, telles que R représente les autorisations de lecture, W représente les autorisations d'écriture et X représente les autorisations d'exécution. Lors de la définition des autorisations, vous pouvez utiliser les symboles suivants:
+ : Augmenter les autorisations.
- : Supprimer les autorisations.
= : Définir les autorisations.
Exemple :
<span><span><span class="hljs-title function_ invoke__">chmod</span></span><span>(</span><span><span class="hljs-string">'example.txt'</span></span><span>, </span><span><span class="hljs-number">0755</span></span><span>); </span><span><span class="hljs-comment">// pourexample.txt文件installationAutorisationpour755</span></span><span>
</span></span>
Vous pouvez également utiliser des méthodes symboliques pour effectuer des opérations d'autorisation:
<span><span><span class="hljs-title function_ invoke__">chmod</span></span><span>(</span><span><span class="hljs-string">'example.txt'</span></span><span>, </span><span><span class="hljs-string">'u+x'</span></span><span>); </span><span><span class="hljs-comment">// pour文件拥有者增加执行Autorisation</span></span><span>
</span><span><span class="hljs-title function_ invoke__">chmod</span></span><span>(</span><span><span class="hljs-string">'example.txt'</span></span><span>, </span><span><span class="hljs-string">'o-w'</span></span><span>); </span><span><span class="hljs-comment">// Supprimer les autorisations d'écriture des autres utilisateurs</span></span><span>
</span></span>
Pour les répertoires, les autorisations doivent généralement inclure des autorisations d'exécution ( x ). S'il n'y a pas d'autorisation d'exécution, l'utilisateur ne peut pas entrer le répertoire, même s'il a lu l'autorisation.
<span><span><span class="hljs-title function_ invoke__">chmod</span></span><span>(</span><span><span class="hljs-string">'example_directory'</span></span><span>, </span><span><span class="hljs-number">0755</span></span><span>); </span><span><span class="hljs-comment">// pour目录installation755Autorisation</span></span><span>
</span></span>
La fonction CHMOD fonctionne différemment dans différents systèmes d'exploitation. Dans les systèmes Linux et Unix, le contrôle d'autorisation des fichiers est très strict et les scripts PHP nécessitent des autorisations suffisantes pour modifier avec succès les autorisations de fichiers. Si le script PHP s'exécute sur un serveur Web, l'utilisateur du serveur (tel que www-data) doit avoir la permission de fonctionner sur le fichier cible. Assurez-vous que l'utilisateur du processus PHP a des autorisations suffisantes, sinon CHMOD échouera.
Assurez-vous que le chemin du fichier transmis à ChMOD est correct. Si le chemin est faux, PHP ne pourra pas trouver le fichier ou le répertoire, et ne pourra donc pas modifier les autorisations.
<span><span><span class="hljs-variable">$file</span></span><span> = </span><span><span class="hljs-string">'/path/to/your/file.txt'</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">chmod</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>, </span><span><span class="hljs-number">0755</span></span><span>);
</span></span>
Soyez prudent lors de la modification des autorisations de fichier et ne donnez pas de permis trop élevées avec désinvolture (comme 777). Cette autorisation signifie que tout utilisateur peut modifier, lire ou exécuter des fichiers, ce qui peut entraîner des vulnérabilités de sécurité. Normalement, les autorisations de fichiers doivent être définies sur le principe des autorisations minimales, et seuls les utilisateurs et programmes nécessaires peuvent accéder à des fichiers ou des répertoires.
Renvoie true lorsque la fonction CHMOD s'exécute avec succès et false s'il y a une erreur. Dans les applications pratiques, le traitement des erreurs peut être combiné pour assurer le succès de l'opération.
<span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">chmod</span></span><span>(</span><span><span class="hljs-string">'example.txt'</span></span><span>, </span><span><span class="hljs-number">0644</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Autorisation修改成功!"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Autorisation修改失败!"</span></span><span>;
}
</span></span>