Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der Dateiberechtigungsfunktion chmod von PHP

Detaillierte Erläuterung der Dateiberechtigungsfunktion chmod von PHP

*文
*文Original
2018-01-05 18:02:525726Durchsuche

chmod()-Funktion ändert den Dateimodus. chmod – Ändert den Dateimodus. Gibt bei Erfolg TRUE zurück, andernfalls FALSE.

Syntax
chmod(file,mode) Parameter Beschreibung
file Erforderlich. Gibt die zu prüfenden Dokumente an.
Modus ist optional. Geben Sie neue Berechtigungen an.
Der Modusparameter besteht aus 4 Zahlen:
Die erste Zahl ist immer 0
Die zweite Zahl gibt die Berechtigungen des Besitzers an
Die zweite Zahl gibt die Berechtigungen der Benutzergruppe an, zu der der Besitzer gehört
Die vierte Zahl gibt die Berechtigungen für alle anderen an
Mögliche Werte (um mehrere Berechtigungen festzulegen, addieren Sie die Zahlen unten):
1 – Ausführungsberechtigungen
2 – Schreibberechtigungen
4 – Leseberechtigungen
Sehen wir uns ein einfaches Beispiel an

<?php 
chmod("/somedir/somefile", 755); // 十进制数,可能不对 
chmod("/somedir/somefile", "u+rwx,go+rx"); // 字符串,不对 
chmod("/somedir/somefile", 0755); // 八进制数,正确的 mode 值 
?>

Verbesserter rekursiver Dateimodus @ infosoft...., dies ist eine kleine Verknüpfung, die alle Dateien im Linux-Dateisystemtyp verarbeiten sollte. Dies kann die Berechtigungen von Dateien oder Verzeichnissen stapelweise ändern

<?php 
function chmodr($path, $filemode) { 
if (!is_dir($path)) 
return chmod($path, $filemode); 
$dh = opendir($path); 
while (($file = readdir($dh)) !== false) { 
if($file != &#39;.&#39; && $file != &#39;..&#39;) { 
$fullpath = $path.&#39;/&#39;.$file; 
if(is_link($fullpath)) 
return FALSE; 
elseif(!is_dir($fullpath) && !chmod($fullpath, $filemode)) 
return FALSE; 
elseif(!chmodr($fullpath, $filemode)) 
return FALSE; 
} 
} 
closedir($dh); 
if(chmod($path, $filemode)) 
return TRUE; 
else 
return FALSE; 
} 
?>

Wenn Sie zu viele Verzeichnisse haben, können Sie diesen Code

<?php 
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($pathname), RecursiveIteratorIterator::SELF_FIRST); 
foreach($iterator as $item) { 
chmod($item, $filemode); 
} 
?>

verwenden, um die Berechtigungen des Verzeichnisses
zu ändern Haha, wir nicht. Es geht nur um die einfache Syntax von chmod und gibt auch komplizierte Anweisungen zu Beispielen für die Verwendung von chmod

bool chmod ( string $filename, int $mode)
Versuchen Sie, den Modus zu ändern der durch Dateiname angegebenen Datei in den angegebenen Modus bestimmt.
Beachten Sie, dass der Modus nicht automatisch als Oktalwert behandelt wird und kein String sein kann (z. B. „g+w“). Um einen korrekten Betrieb sicherzustellen, müssen Sie vor dem Modus eine 0 hinzufügen:
Der Modusparameter enthält drei Oktalzahlen, die den Eigentümer, die Gruppe des Eigentümers und die Zugriffsbeschränkungen aller Benutzer der Reihe nach angeben. Jeder Teil kann durch Hinzufügen der erforderlichen Berechtigungen berechnet werden. Die Zahl 1 macht die Datei ausführbar, die Zahl 2 macht die Datei beschreibbar und die Zahl 4 macht die Datei lesbar. Fügen Sie diese Zahlen hinzu, um die erforderlichen Berechtigungen anzugeben. Informationen zu Dateiberechtigungen auf UNIX-Systemen finden Sie in den Handbüchern „man 1 chmod“ und „man 2 chmod“.

<?php 
// Read and write for owner, nothing for everybody else 
chmod("/somedir/somefile", 0600); 
// Read and write for owner, read for everybody else 
chmod("/somedir/somefile", 0644); 
// Everything for owner, read and execute for others 
chmod("/somedir/somefile", 0755); 
// Everything for owner, read and execute for owner&#39;s group 
chmod("/somedir/somefile", 0750); 
?>

Gibt TRUE bei Erfolg und FALSE bei Fehler zurück.
Hinweis: Der aktuelle Benutzer bezieht sich auf den Benutzer, der PHP ausführt. Höchstwahrscheinlich nicht dasselbe wie der übliche Shell- oder FTP-Benutzer. Auf den meisten Systemen kann der Modus einer Datei nur von dem Benutzer geändert werden, dem die Datei gehört.
Hinweis: Diese Funktion kann nicht für Remote-Dateien verwendet werden. Der Zugriff auf die überprüften Dateien muss über das Dateisystem des Servers erfolgen.
Hinweis: Wenn der abgesicherte Modus aktiviert ist, prüft PHP, ob die bearbeitete Datei dieselbe UID (Eigentümer) wie das ausgeführte Skript hat. Es ist zu beachten, dass SUID, SGID und Sticky Bits nicht geändert werden können.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Dateiberechtigungsfunktion chmod von PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn