Dans PHP, la fonction umask () est utilisée pour définir le masque d'autorisation par défaut lors de la création de fichiers et de répertoires. Autrement dit, UMask contrôle les autorisations pour les fichiers ou répertoires nouvellement créés du système. Il s'agit d'un outil largement utilisé sur les systèmes UNIX et UNIX tels que Linux et MacOS, ce qui peut aider les développeurs à contrôler la sécurité et l'accessibilité des fichiers plus granulaires.
Dans Unix Systems, les autorisations de fichiers sont représentées par trois ensembles de nombres: utilisateur (propriétaire), groupe d'utilisateurs (groupe) et autres utilisateurs (autres). Chaque ensemble d'autorisations consiste en des autorisations de lecture (R), d'écriture (w) et d'exécution (x), et est généralement représentée par des nombres octaux, par exemple:
7 = Lire, écrire et exécuter les autorisations (RWX)
6 = Lisez et écrivez les autorisations (RW-)
5 = Lire et exécuter les autorisations (RX)
4 = Permission de lecture (R--)
3 = Écrire et exécuter les autorisations (WX-)
2 = autorisation d'écriture (w--)
1 = autorisation d'exécution (x--)
0 = aucune autorisation (---)
Lorsque vous utilisez la fonction umask () , vous transmettez une valeur de masque, ce qui affectera les paramètres d'autorisation par défaut du système.
Dans PHP, la fonction de la fonction umask () est de définir ou d'obtenir le masque de création de fichiers actuel. Le masque de création détermine que lorsque PHP crée un nouveau fichier ou un nouveau répertoire, la valeur d'autorisation par défaut sera "Bit-by Bit" (et) l'opération, obtenant ainsi les autorisations de fichier final.
Par exemple, les autorisations par défaut du système d'exploitation sont 777 (c'est-à-dire que tous les utilisateurs ont lu, écrit et exécuté les autorisations), et umask () est défini sur 022 , alors les autorisations du nouveau fichier ou du répertoire créé seront 755 (c'est-à-dire que l'utilisateur a lu, écrit et exécuté les permissions, et d'autres ont lu et exécuté les permissions, et les autorisations d'écriture ont été supprimées).
<span><span><span class="hljs-title function_ invoke__">umask</span></span><span>([</span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$mask</span></span><span>]);
</span></span>
$ masque : est une valeur entière facultative qui représente le masque d'autorisation de fichier à définir. Si aucun argument n'est passé, umask () renvoie la valeur actuelle du masque.
Si vous souhaitez que les autorisations suivent certaines règles lors de la création d'un fichier, vous pouvez utiliser umask () pour le définir. Par exemple, si vous souhaitez définir la création de fichiers, seul le propriétaire du fichier est autorisé à lire, écrire et exécuter les autorisations, tandis que d'autres utilisateurs ne peuvent lire que le fichier, vous pouvez définir le masque sur 0770 :
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-title function_ invoke__">umask</span></span><span>(</span><span><span class="hljs-number">0770</span></span><span>);
</span><span><span class="hljs-variable">$file</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fopen</span></span><span>(</span><span><span class="hljs-string">"example.txt"</span></span><span>, </span><span><span class="hljs-string">"w"</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">fwrite</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>, </span><span><span class="hljs-string">"This is a test."</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">fclose</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Dans cet exemple, le fichier créé ne donnera pas au groupe d'utilisateurs et aux autres utilisateurs des autorisations d'écriture, et seul le propriétaire du fichier peut effectuer l'opération d'écriture.
Si vous souhaitez afficher les paramètres du masque de fichier du système actuel, vous pouvez appeler umask () sans passer de paramètres:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$current_umask</span></span><span> = </span><span><span class="hljs-title function_ invoke__">umask</span></span><span>();
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Current umask: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">sprintf</span></span><span>(</span><span><span class="hljs-string">"%04o"</span></span><span>, </span><span><span class="hljs-variable">$current_umask</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Ici % 04O est utilisé pour produire des valeurs UMask au format octal.
Le masque d'autorisation défini par umask () est efficace pour le processus PHP actuel et affectera uniquement les fichiers et répertoires ultérieurs créés via PHP.
Une fois le processus terminé ou l'exécution du script PHP terminée, le réglage d' Umask () sera perdu. Une fois que le processus a quitté, le réglage de umask () sera restauré à la valeur par défaut du système.
La fonction umask () n'a aucun effet sur les fichiers ou les répertoires existants et n'affectera que les fichiers et répertoires nouvellement créés.
Contrôle de sécurité : En définissant un Mask approprié, le personnel non apparenté peut empêcher les opérations d'écriture sur les fichiers et protéger la sécurité des données sensibles.
Gestion des fichiers journaux : Définissez une autorisation plus stricte pour les fichiers journaux afin de garantir que seuls les utilisateurs ou processus spécifiques peuvent y accéder.
Création de fichiers temporaire : lors de la création de fichiers temporaires, définissez un Mask approprié pour réduire le risque d'autres processus ou utilisateurs accédant à ces fichiers.
UMask () est une fonction puissante qui aide les développeurs PHP à personnaliser les paramètres d'autorisation lors de la création de fichiers et de répertoires. En configurant correctement Umask , la sécurité et la gestion du système de fichiers peuvent être améliorées. Dans un environnement de développement, l'utilisation rationnelle d' Umask () peut réduire efficacement les problèmes d'autorisation et éviter les risques de sécurité potentiels.