Position actuelle: Accueil> Derniers articles> Comment gérer les valeurs d'autorisation octale à l'aide de la fonction CHMOD de PHP?

Comment gérer les valeurs d'autorisation octale à l'aide de la fonction CHMOD de PHP?

gitbox 2025-08-25

Dans les systèmes de type Linux et Unix, les autorisations de fichiers et de répertoires sont représentées par des nombres octaux à trois chiffres (tels que 0755 , 0644 ). Ces valeurs d'autorisation contrôlent les autorisations de lecture, d'écriture et d'exécution du propriétaire du fichier, du groupe d'utilisateurs auquel il appartient et d'autres utilisateurs. Dans PHP, la fonction chmod () nous permet de modifier par programme les autorisations de fichiers ou de répertoires. Cet article expliquera comment utiliser correctement la fonction chmod () et se concentrer sur la façon de gérer les valeurs d'autorisation octale.

1. Syntaxe de base

 <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">$permissions</span></span><span> )
</span></span>
  • $ nom de fichier : le chemin du fichier ou du répertoire auquel les autorisations doivent être modifiées.

  • $ Autorisations : valeur d'autorisation exprimée en octal (comme 0755 ).

La fonction renvoie une valeur booléenne, renvoie True pour le succès et renvoie False pour l'échec.

2. Comprendre la valeur d'autorisation octale

Les valeurs d'autorisation octale sont généralement écrites comme un numéro à trois chiffres ou à quatre chiffres, et les trois premiers chiffres correspondent à:

  • Première place: autorisation du propriétaire du fichier

  • Deuxièmement: autorisation au groupe d'utilisateurs

  • Troisième place: autorisation d'autres utilisateurs

Les valeurs d'autorisation pour chaque bit sont les suivantes:

  • 4 = lire (r)

  • 2 = écrire (w)

  • 1 = exécuter (x)

Ces valeurs peuvent être superposées. Par exemple:

  • 7 = 4 + 2 + 1 = lire, écrire, exécuter

  • 6 = 4 + 2 = lire, écrire

  • 5 = 4 + 1 = lire, exécuter

Exemple:

  • 0755 signifie: le propriétaire peut lire et écrire l'exécution, et les utilisateurs du groupe et les autres utilisateurs peuvent lire l'exécution.

  • 0644 signifie: le propriétaire peut lire et écrire, et les utilisateurs de groupe et les autres utilisateurs ne peuvent lire que.

Remarque: La valeur d'autorisation en PHP doit commencer par 0 pour représenter octal , sinon elle sera interprétée comme décimale, ce qui entraîne des résultats incorrects.

 <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">// correct,0755 C&#39;est octal</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">755</span></span><span>);  </span><span><span class="hljs-comment">// erreur,755 Sera traité comme décimal</span></span><span>
</span></span>

3. Exemple de réglage de l'autorisation

Voici quelques exemples de paramètres d'autorisation courants:

 <span><span><span class="hljs-comment">// Se défaut pour être lisible et inscrit par tout le monde</span></span><span>
</span><span><span class="hljs-title function_ invoke__">chmod</span></span><span>(</span><span><span class="hljs-string">'script.sh'</span></span><span>, </span><span><span class="hljs-number">0777</span></span><span>);

</span><span><span class="hljs-comment">// Réglé sur le propriétaire lire et écrire,D&#39;autres lisent uniquement</span></span><span>
</span><span><span class="hljs-title function_ invoke__">chmod</span></span><span>(</span><span><span class="hljs-string">'config.ini'</span></span><span>, </span><span><span class="hljs-number">0644</span></span><span>);

</span><span><span class="hljs-comment">// Réglé sur le propriétaire lire et écrire执行,Utilisateurs du groupe et autres utilisateurs en lecture seule</span></span><span>
</span><span><span class="hljs-title function_ invoke__">chmod</span></span><span>(</span><span><span class="hljs-string">'public/index.php'</span></span><span>, </span><span><span class="hljs-number">0755</span></span><span>);
</span></span>

4. Afficher les autorisations en conjonction avec FilePerms ()

Vous pouvez également utiliser la fonction filePerms () pour obtenir les autorisations de fichier actuelles et la convertir en format octal avec DECOCT () :

 <span><span><span class="hljs-variable">$perms</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fileperms</span></span><span>(</span><span><span class="hljs-string">'example.txt'</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-title function_ invoke__">decoct</span></span><span>(</span><span><span class="hljs-variable">$perms</span></span><span>), -</span><span><span class="hljs-number">4</span></span><span>); </span><span><span class="hljs-comment">// Après avoir sorti des autorisations4Bit octal</span></span><span>
</span></span>

Ceci est très utile pour déboguer et vérifier que les paramètres d'autorisation sont en vigueur.

5. Choses à noter

  1. Les scripts PHP doivent avoir l'autorisation de modifier l'autorisation du fichier cible . Sinon, Chmod () échouera.

  2. Sur certains systèmes, les autorisations de répertoire peuvent également affecter l'accès aux fichiers .

  3. Évitez d'utiliser les autorisations 0777 sauf s'il s'agit d'un fichier temporaire ou d'une phase de débogage . Dans les environnements de production, essayez d'éviter de permettre aux fichiers d'ouvrir les autorisations d'écriture à tous les utilisateurs.

Conclusion

La maîtrise de l'utilisation de la fonction CHMOD () dans PHP, en particulier le traitement des valeurs d'autorisation octale, est cruciale pour gérer les autorisations de fichiers de serveur et créer des applications Web sécurisées. La plupart des problèmes d'accès aux fichiers et de sécurité peuvent être évités en gardant à l'esprit le format octal et en allouant correctement les autorisations.