Position actuelle: Accueil> Derniers articles> Comment contrôler les autorisations par défaut de nouveaux fichiers via la fonction UMask de PHP? Exemple description

Comment contrôler les autorisations par défaut de nouveaux fichiers via la fonction UMask de PHP? Exemple description

gitbox 2025-09-16
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Cette partie du code n&#39;a rien à voir avec le contenu de l&#39;article,Commencer comme exemple seulement</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Bienvenue à lirePHPTutoriel de contrôle de l&#39;autorisation de fichier。"</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>

&lt;hr&gt;

</span><span><span class="hljs-meta">&lt;?php</span></span><span>
<span class="hljs-comment">/*
Titre d&#39;article:passerPHPdeumask函数怎么控制新建documentde默认权限?Exemple description
*/</span>

</span><span><span class="hljs-comment">// PHP中deumask函数用于installation进程dedocument权限掩码,从而控制新建document或目录de默认权限。</span></span><span>
</span><span><span class="hljs-comment">// Par défaut,Linux系统对新建documentde权限一般是0666(rw-rw-rw-),Le nouveau répertoire est0777(rwxrwxrwx)。</span></span><span>
</span><span><span class="hljs-comment">// umask函数passer屏蔽权限位,限制新建document或目录de权限。</span></span><span>

</span><span><span class="hljs-comment">// Par exemple,umask(0022)Indique le blocage0022对应de权限,即屏蔽组和其他用户de写权限。</span></span><span>
</span><span><span class="hljs-comment">// 新建documentde默认权限将是 0666 &amp; ~0022 = 0644 (rw-r--r--)</span></span><span>
</span><span><span class="hljs-comment">// 新建目录de默认权限将是 0777 &amp; ~0022 = 0755 (rwxr-xr-x)</span></span><span>

</span><span><span class="hljs-comment">// Exemple description:</span></span><span>

</span><span><span class="hljs-comment">// installationumaskvaleur</span></span><span>
</span><span><span class="hljs-title function_ invoke__">umask</span></span><span>(</span><span><span class="hljs-number">0022</span></span><span>);

</span><span><span class="hljs-comment">// Créer un fichier</span></span><span>
</span><span><span class="hljs-variable">$file</span></span><span> = </span><span><span class="hljs-string">'testfile.txt'</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">file_put_contents</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>, </span><span><span class="hljs-string">"Ceci est un fichier de test。"</span></span><span>);

</span><span><span class="hljs-comment">// Vérifier les autorisations de fichier</span></span><span>
</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-variable">$file</span></span><span>) &amp; </span><span><span class="hljs-number">0777</span></span><span>; </span><span><span class="hljs-comment">// Seuls les bits d&#39;autorisation</span></span><span>
</span><span><span class="hljs-title function_ invoke__">printf</span></span><span>(</span><span><span class="hljs-string">"document %s de权限是: %o\n"</span></span><span>, </span><span><span class="hljs-variable">$file</span></span><span>, </span><span><span class="hljs-variable">$perms</span></span><span>);

<span class="hljs-comment">/*
Le résultat de l&#39;exécution est généralement:
document testfile.txt de权限是: 644

这表明新建documentde权限是rw-r--r--,C&#39;est-à-dire que le propriétaire peut lire et écrire,Les utilisateurs du groupe et les autres utilisateurs lisent uniquement。
*/</span>

</span><span><span class="hljs-comment">// Si vous souhaitez modifier les autorisations par défaut,Peut être changéumaskvaleur,Par exemple:</span></span><span>
</span><span><span class="hljs-title function_ invoke__">umask</span></span><span>(</span><span><span class="hljs-number">0000</span></span><span>); </span><span><span class="hljs-comment">// Aucune autorisation bloquée</span></span><span>

</span><span><span class="hljs-comment">// 创建另一个document</span></span><span>
</span><span><span class="hljs-variable">$file2</span></span><span> = </span><span><span class="hljs-string">'testfile2.txt'</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">file_put_contents</span></span><span>(</span><span><span class="hljs-variable">$file2</span></span><span>, </span><span><span class="hljs-string">"权限更宽松de测试document。"</span></span><span>);

</span><span><span class="hljs-comment">// 检查新document权限</span></span><span>
</span><span><span class="hljs-variable">$perms2</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fileperms</span></span><span>(</span><span><span class="hljs-variable">$file2</span></span><span>) &amp; </span><span><span class="hljs-number">0777</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">printf</span></span><span>(</span><span><span class="hljs-string">"document %s de权限是: %o\n"</span></span><span>, </span><span><span class="hljs-variable">$file2</span></span><span>, </span><span><span class="hljs-variable">$perms2</span></span><span>);

<span class="hljs-comment">/*
Pour le moment, les autorisations sont généralement666 (rw-rw-rw-),C&#39;est-à-dire que tous les utilisateurs ont lu et écrit des autorisations。
*/</span>

</span><span><span class="hljs-comment">// Choses à noter:</span></span><span>
</span><span><span class="hljs-comment">// 1. umaskAffecter uniquement le courantPHP进程新建dedocument或目录。</span></span><span>
</span><span><span class="hljs-comment">// 2. 已存在document权限不会被umaskInfluence。</span></span><span>
</span><span><span class="hljs-comment">// 3. web服务器运行用户权限和操作系统安全策略也会Influence最终权限。</span></span><span>

</span><span><span class="hljs-comment">// En résumé,passerumaskLes fonctions peuvent être facilement contrôléesPHP中新建document和目录de默认权限。</span></span><span>
</span><span><span class="hljs-comment">// 正确installationumask,有助于保证document安全,避免权限过宽带来de安全风险。</span></span><span>

</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>