In PHP wird die menk () -Funktion verwendet, um die Standardberechtigungsmaske beim Erstellen von Dateien und Verzeichnissen festzulegen. Einfach ausgedrückt, kontrolliert Ummask die Berechtigungen für neu erstellte Dateien oder Verzeichnisse im System. Es ist ein weit verbreitetes Tool für UNIX- und UNIX-ähnliche Systeme wie Linux und MacOS, mit dem Entwickler die Sicherheit und Zugänglichkeit von Dateien detaillierter steuern können.
In UNIX -Systemen werden Dateiberechtigungen durch drei Zahlensätze dargestellt: Benutzer (Eigentümer), Benutzergruppe (Gruppe) und andere Benutzer (andere). Jede Reihe von Berechtigungen besteht aus Read (R), Write (W) und Ausführen (x) Berechtigungen und wird normalerweise durch Oktalnummern dargestellt, z. B. durch Oktalnummern:
7 = Berechtigungen lesen, schreiben und ausführen (RWX)
6 = Berechtigungen lesen und schreiben (rw-)
5 = Berechtigungen lesen und ausführen (RX)
4 = Erlaubnis melden (r--)
3 = Berechtigungen schreiben und ausführen (WX-)
2 = Schreibberechtigung (W-)
1 = Ausführungsgenehmigung (x--)
0 = keine Erlaubnis (---)
Bei der Verwendung der UMask () -Funktion geben Sie einen Maskenwert über, der die Standardeinstellungen des Systems beeinflusst.
In PHP besteht die Funktion der menm () -Funktion darin, die aktuelle Maske für Dateierstellung festzulegen oder zu erhalten. Die Erstellungsmaske stellt fest, dass beim Erstellen einer neuen Datei oder eines neuen Verzeichnisses der Standard-Berechtigungswert "bit für Bit" (und) mit ihm erstellt wird, wodurch die endgültigen Dateiberechtigungen erhalten werden.
For example, the default permissions of the operating system are 777 (that is, all users have read, write, and execute permissions), and umask() is set to 022 , then the permissions of the created new file or directory will be 755 (that is, the user has read, write, and execute permissions, and others have read and execute permissions, and the write permissions have been removed).
<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>
$ mask : ist ein optionaler Ganzzahlwert, der die zu festgelegte Dateiberechtigungsmaske darstellt. Wenn kein Argument verabschiedet wird, gibt UMask () den aktuellen Maskenwert zurück.
Wenn Sie möchten, dass die Berechtigungen beim Erstellen einer Datei einige Regeln einhalten, können Sie UMask () verwenden, um sie festzulegen. Wenn Sie beispielsweise die Dateierstellung festlegen möchten, darf nur der Dateibesitzer Berechtigungen gelesen, schreiben und ausführen, während andere Benutzer die Datei nur lesen können, können Sie die Maske auf 0770 festlegen:
<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>
In diesem Beispiel gibt die erstellte Datei der Benutzergruppe und anderen Benutzern keine Berechtigungen an, und nur der Eigentümer der Datei kann den Schreibvorgang ausführen.
Wenn Sie die Dateimaskeneinstellungen des aktuellen Systems anzeigen möchten, können Sie UMask () aufrufen, ohne Parameter zu übergeben:
<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>
Hier wird %04o verwendet, um Ummask -Werte im Oktalformat auszugeben.
Die von UMask () festgelegte Berechtigungsmaske ist für den aktuellen PHP -Prozess wirksam und wirkt sich nur auswirken, die nachfolgende Dateien und Verzeichnisse über PHP erstellt wurden.
Sobald der Vorgang abgeschlossen ist oder die Ausführung von PHP -Skript abgeschlossen ist, geht die Einstellung von UMask () verloren. Nach dem Ablauf des Prozesses wird die Einstellung von menk () auf den Standardwert des Systems wiederhergestellt.
Die UMask () -Funktion wirkt sich nicht auf vorhandene Dateien oder Verzeichnisse aus und wirkt sich nur auf neu erstellte Dateien und Verzeichnisse aus.
Sicherheitsregelung : Durch das Festlegen geeigneter Ummask können nicht verwandte Mitarbeiter Schreibvorgänge auf Dateien verhindern und die Sicherheit sensibler Daten schützen.
Log -Dateiverwaltung : Legen Sie eine strengere Berechtigung für Protokolldateien fest, um sicherzustellen, dass nur bestimmte Benutzer oder Prozesse darauf zugreifen können.
Temporäre Dateierstellung : Setzen Sie beim Erstellen von temporären Dateien die entsprechende Ummask , um das Risiko anderer Prozesse oder Benutzer zu verringern, die auf diese Dateien zugreifen.
UMask () ist eine leistungsstarke Funktion, mit der PHP -Entwickler beim Erstellen von Dateien und Verzeichnissen Berechtigungseinstellungen anpassen können. Durch die ordnungsgemäße Konfiguration von UMask kann die Sicherheit und Verwaltbarkeit des Dateisystems verbessert werden. In einer Entwicklungsumgebung kann der rationale Gebrauch von Ummask () die Berechtigungsprobleme effektiv reduzieren und potenzielle Sicherheitsrisiken vermeiden.