Aktueller Standort: Startseite> Neueste Artikel> Wie steuern Sie die Standardberechtigungen neuer Dateien über die Ummask -Funktion von PHP? Beispiel Beschreibung

Wie steuern Sie die Standardberechtigungen neuer Dateien über die Ummask -Funktion von PHP? Beispiel Beschreibung

gitbox 2025-09-16
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Dieser Teil des Codes hat nichts mit dem Inhalt des Artikels zu tun,Nur als Beispiel beginnen</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Willkommen bei ReadPHPTutorial zur Steuerung von Dateiberechtigten。"</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">/*
Artikel Titel:passierenPHPvonumask函数怎么控制新建dokumentierenvon默认权限?Beispiel Beschreibung
*/</span>

</span><span><span class="hljs-comment">// PHP中vonumask函数用于aufstellen进程vondokumentieren权限掩码,从而控制新建dokumentieren或目录von默认权限。</span></span><span>
</span><span><span class="hljs-comment">// Standardmäßig,Linux系统对新建dokumentierenvon权限一般是0666(rw-rw-rw-),Das neue Verzeichnis ist0777(rwxrwxrwx)。</span></span><span>
</span><span><span class="hljs-comment">// umask函数passieren屏蔽权限位,限制新建dokumentieren或目录von权限。</span></span><span>

</span><span><span class="hljs-comment">// Zum Beispiel,umask(0022)Zeigt Blockierung an0022对应von权限,即屏蔽组和其他用户von写权限。</span></span><span>
</span><span><span class="hljs-comment">// 新建dokumentierenvon默认权限将是 0666 &amp; ~0022 = 0644 (rw-r--r--)</span></span><span>
</span><span><span class="hljs-comment">// 新建目录von默认权限将是 0777 &amp; ~0022 = 0755 (rwxr-xr-x)</span></span><span>

</span><span><span class="hljs-comment">// Beispiel Beschreibung:</span></span><span>

</span><span><span class="hljs-comment">// aufstellenumaskWert</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">// Eine Datei erstellen</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">"Dies ist eine Testdatei。"</span></span><span>);

</span><span><span class="hljs-comment">// Überprüfen Sie die Dateiberechtigungen</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">// Nur Berechtigungsbits</span></span><span>
</span><span><span class="hljs-title function_ invoke__">printf</span></span><span>(</span><span><span class="hljs-string">"dokumentieren %s von权限是: %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">/*
Das Laufergebnis ist normalerweise:
dokumentieren testfile.txt von权限是: 644

这表明新建dokumentierenvon权限是rw-r--r--,Das heißt, der Besitzer kann lesen und schreiben,Gruppenbenutzer und andere Benutzer lesen nur。
*/</span>

</span><span><span class="hljs-comment">// Wenn Sie die Standardberechtigungen ändern möchten,Kann geändert werdenumaskWert,Zum Beispiel:</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">// Keine Erlaubnis blockiert</span></span><span>

</span><span><span class="hljs-comment">// 创建另一个dokumentieren</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">"权限更宽松von测试dokumentieren。"</span></span><span>);

</span><span><span class="hljs-comment">// 检查新dokumentieren权限</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">"dokumentieren %s von权限是: %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">/*
Zu diesem Zeitpunkt sind die Berechtigungen normalerweise666 (rw-rw-rw-),Das heißt, alle Benutzer haben Berechtigungen gelesen und schreiben。
*/</span>

</span><span><span class="hljs-comment">// Dinge zu beachten:</span></span><span>
</span><span><span class="hljs-comment">// 1. umaskBeeinflussen nur den StromPHP进程新建vondokumentieren或目录。</span></span><span>
</span><span><span class="hljs-comment">// 2. 已存在dokumentieren权限不会被umaskBeeinflussen。</span></span><span>
</span><span><span class="hljs-comment">// 3. web服务器运行用户权限和操作系统安全策略也会Beeinflussen最终权限。</span></span><span>

</span><span><span class="hljs-comment">// Zusammenfassend,passierenumaskFunktionen können leicht kontrolliert werdenPHP中新建dokumentieren和目录von默认权限。</span></span><span>
</span><span><span class="hljs-comment">// 正确aufstellenumask,有助于保证dokumentieren安全,避免权限过宽带来von安全风险。</span></span><span>

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