Die grundlegende Syntax der CHMOD -Funktion lautet wie folgt:
<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">$mode</span></span><span>);
</span></span>
$ Dateiname : Der Pfad zur Datei oder zum Verzeichnis, der geändert werden muss.
$ modus : Der numerische Wert der Zielgenehmigung (kann im Oktalformat vorliegen) oder eine symbolische Notation wie RWX kann verwendet werden.
Beispiel :
<span><span><span class="hljs-variable">$file</span></span><span> = </span><span><span class="hljs-string">'example.txt'</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">chmod</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>, </span><span><span class="hljs-number">0644</span></span><span>); </span><span><span class="hljs-comment">// aufstellenexample.txtDie Berechtigungen der Datei sind644</span></span><span>
</span></span>
In diesem Beispiel ist 0644 eine numerische Darstellung von Dateiberechtigungen, die angibt, dass der Dateibesitzer Dateien lesen und schreiben kann, und andere Benutzer haben nur Berechtigungen gelesen.
In Linux- und UNIX -Systemen bestehen die Berechtigungen jeder Datei oder jedes Verzeichniss aus drei Teilen: Dateibesitzer (Eigentümer), Benutzergruppe (Gruppe) und andere Benutzer (andere). Die Berechtigungen jedes Teils können separat eingestellt werden auf:
R (lesen) : Berechtigung lesen und angeben, dass der Benutzer den Dateiinhalt anzeigen kann.
W (Schreiben) : Erlaubnis schreiben und angeben, dass der Benutzer den Dateiinhalt ändern kann.
X (Ausführung) : Ausführungsberechtigung, mit der der Benutzer die Datei ausführen kann (falls es sich um ein Skript oder ein Programm handelt).
Der Berechtigungswert ist eine dreistellige Oktalummer, die die Berechtigungen des Dateibesitzers, der Benutzergruppe und anderer Benutzer angibt. Zum Beispiel bedeutet 0644 :
6 (RW-) : Der Dateibesitzer hat Berechtigungen gelesen und geschrieben, hat jedoch keine Ausführungsberechtigungen.
4 (r--) : Die Benutzergruppe hat die Berechtigung gelesen.
4 (r--) : Andere Benutzer haben die Erlaubnis gelesen.
Im numerischen Modus werden die Dateiberechtigungen durch drei Oktalnummern angegeben. Jede Nummer repräsentiert die Berechtigungen des Dateibesitzers, der Benutzergruppe und anderer Benutzer. Zum Beispiel:
777 : Alle Benutzer haben Berechtigungen gelesen, schreiben und ausführen (extrem hohe Berechtigungen).
755 : Der Dateibesitzer verfügt über alle Berechtigungen, und andere Benutzer können nur lesen und ausführen (häufig in ausführbaren Dateien oder Verzeichnissen verwendet).
644 : Dateibesitzer können lesen und schreiben, während andere Benutzer nur lesen können (häufig in gewöhnlichen Dateien verwendet).
Die symbolische Methode besteht darin , Buchstaben und Symbole zu verwenden, um Berechtigungen darzustellen, wie z . Beim Einstellen von Berechtigungen können Sie die folgenden Symbole verwenden:
+ : Erhöhen Sie die Berechtigungen.
- : Berechtigungen löschen.
= : Berechtigungen festlegen.
Beispiel :
<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">// fürexample.txt文件aufstellenBerechtigungenfür755</span></span><span>
</span></span>
Sie können auch symbolische Methoden verwenden, um Berechtigungsvorgänge auszuführen:
<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-string">'u+x'</span></span><span>); </span><span><span class="hljs-comment">// für文件拥有者增加执行Berechtigungen</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-string">'o-w'</span></span><span>); </span><span><span class="hljs-comment">// Schreibberechtigungen von anderen Benutzern löschen</span></span><span>
</span></span>
Für Verzeichnisse müssen die Berechtigungen normalerweise Ausführungsberechtigungen ( x ) enthalten. Wenn keine Ausführungsgenehmigung vorliegt, kann der Benutzer das Verzeichnis nicht eingeben, selbst wenn er die Berechtigung gelesen hat.
<span><span><span class="hljs-title function_ invoke__">chmod</span></span><span>(</span><span><span class="hljs-string">'example_directory'</span></span><span>, </span><span><span class="hljs-number">0755</span></span><span>); </span><span><span class="hljs-comment">// für目录aufstellen755Berechtigungen</span></span><span>
</span></span>
Die CHMOD -Funktion funktioniert in verschiedenen Betriebssystemen unterschiedlich. In Linux- und UNIX -Systemen ist die Dateiberechtigungssteuerung sehr streng, und PHP -Skripte erfordern ausreichende Berechtigungen, um die Dateiberechtigungen erfolgreich zu ändern. Wenn das PHP-Skript auf einem Webserver ausgeführt wird, muss der Serverbenutzer (z. B. www-data) die Berechtigung haben, in der Zieldatei zu arbeiten. Stellen Sie sicher, dass der Benutzer des PHP -Prozesses über ausreichende Berechtigungen verfügt, da ansonsten CHMOD fehlschlagen.
Stellen Sie sicher, dass der an CHMOD übergebene Dateipfad korrekt ist. Wenn der Pfad falsch ist, kann PHP die Datei oder das Verzeichnis nicht finden und die Berechtigungen nicht ändern.
<span><span><span class="hljs-variable">$file</span></span><span> = </span><span><span class="hljs-string">'/path/to/your/file.txt'</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">chmod</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>, </span><span><span class="hljs-number">0755</span></span><span>);
</span></span>
Seien Sie vorsichtig, wenn Sie die Dateiberechtigungen ändern, und geben Sie nicht beiläufig zu hohe Berechtigungen (wie 777). Diese Berechtigung bedeutet, dass jeder Benutzer Dateien ändern, lesen oder ausführen kann, die Sicherheitslücken verursachen können. Normalerweise sollten Dateiberechtigungen auf das Prinzip der Mindestberechtigungen festgelegt werden, und nur erforderliche Benutzer und Programme können auf Dateien oder Verzeichnisse zugreifen.
Geben Sie True zurück, wenn die CHMOD -Funktion erfolgreich ausgeführt wird, und falsch, wenn ein Fehler vorliegt. In praktischen Anwendungen kann die Fehlerbehandlung kombiniert werden, um den Erfolg des Betriebs zu gewährleisten.
<span><span><span class="hljs-keyword">if</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">0644</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Berechtigungen修改成功!"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Berechtigungen修改失败!"</span></span><span>;
}
</span></span>