Aktueller Standort: Startseite> Neueste Artikel> So überprüfen Sie Änderungen der Dateiberechtigte in PHP durch Kombination von UMask -Funktion und STAT -Funktion? Praktischer Betriebsleitfaden

So überprüfen Sie Änderungen der Dateiberechtigte in PHP durch Kombination von UMask -Funktion und STAT -Funktion? Praktischer Betriebsleitfaden

gitbox 2025-07-09

1. Einführung in die Funktion assenk ()

Die Funktion reiben () wird verwendet, um die Dateimodus -Erstellungsmaske des aktuellen Prozesses (UMask) festzulegen oder abzurufen. Die Dateimodus -Maske bestimmt die Standardberechtigungen für neu erstellte Dateien. Durch das Festlegen der entsprechenden Maske können PHP -Programme sicherstellen, dass ihre Berechtigungen beim Erstellen einer neuen Datei automatisch eingeschränkt werden.

Nutzung von Ummask ()

 <span><span><span class="hljs-comment">// Holen Sie sich die Dateierstellungsmaske des aktuellen Prozesses</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">"AktuellumaskDer Wert ist: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">decoct</span></span><span>(</span><span><span class="hljs-variable">$current_umask</span></span><span>) . </span><span><span class="hljs-string">"\n"</span></span><span>;

</span><span><span class="hljs-comment">// Richten Sie eine neue einumask</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">// Der Maskenwert ist0022,Zeigt an, dass die Berechtigungen der neuen Datei sind755</span></span><span>
</span></span>

Im obigen Beispiel erhalten wir zunächst den aktuellen Ummask -Wert und setzen einen neuen Mask -Wert mit der UMask () -Funktion. Die Bedeutung von 0022 lautet: Die neu erstellte Datei wird automatisch auf 755 Berechtigungen festgelegt (dh der Benutzer hat Ausführungsberechtigungen gelesen und schreiben, während andere Benutzer nur Berechtigungen gelesen und ausgeführt haben).


2. Einführung in die Funktion STAT ()

Die Funktion STAT () wird verwendet, um die Statussinformationen der angegebenen Datei einschließlich der Dateigröße, der letzten Änderungszeit und der Dateiberechtigungen zu erhalten. Es gibt ein Array mit Details zurück, in dem das Modusfeld den Berechtigungsmodus der Datei darstellt.

Grundlegende Verwendung von STAT ()

 <span><span><span class="hljs-variable">$file_stat</span></span><span> = </span><span><span class="hljs-title function_ invoke__">stat</span></span><span>(</span><span><span class="hljs-string">'example.txt'</span></span><span>);

</span><span><span class="hljs-comment">// Dateiberechtigungsmodus anzeigen</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Der Berechtigungsmodus der Datei ist: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">decoct</span></span><span>(</span><span><span class="hljs-variable">$file_stat</span></span><span>[</span><span><span class="hljs-string">'mode'</span></span><span>]) . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span></span>

Der von stat () zurückgegebene Modus ist ein ganzzahliger Wert und muss mit etwas Maske analysiert werden. Durch Bit -Operationen können wir detaillierte Berechtigungsinformationen der Datei erhalten.


3.. Kombinieren Sie UMask () und STAT (), um Änderungen der Dateiberechtigte zu überprüfen

Um die Dateiberechtigungen besser verwalten zu können, können wir UMask () und stat () in Kombination verwenden, um Änderungen in den Dateiberechtigungen zu verfolgen. Angenommen, wir haben eine Datei, die die tatsächlichen Berechtigungen der Datei nach dem Erstellen überprüfen und sicherstellen möchte, dass sie wie erwartet ist.

Praktische Schritte:

  1. Richten Sie den entsprechenden Ummask ein, um sicherzustellen, dass die Berechtigungen der neuen Datei unsere Anforderungen entsprechen.

  2. Verwenden Sie die Funktion stat (), um Berechtigungen für die Datei zu erhalten.

  3. Vergleichen Sie den von stat () zurückgegebenen Berechtigungswert mit dem erwarteten Wert, um festzustellen, ob sich die Dateiberechtigungen geändert haben.

Beispielcode:

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

</span><span><span class="hljs-comment">// Stellen Sie die Dateiberechtigungsmaske fest</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">// Erstellen Sie eine neue Datei</span></span><span>
</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__">file_put_contents</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>, </span><span><span class="hljs-string">"This is a test file."</span></span><span>);

</span><span><span class="hljs-comment">// Dateistatus abrufen</span></span><span>
</span><span><span class="hljs-variable">$file_stat</span></span><span> = </span><span><span class="hljs-title function_ invoke__">stat</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>);

</span><span><span class="hljs-comment">// Holen Sie sich den Dateiberechtigungsmodus</span></span><span>
</span><span><span class="hljs-variable">$file_permissions</span></span><span> = </span><span><span class="hljs-variable">$file_stat</span></span><span>[</span><span><span class="hljs-string">'mode'</span></span><span>] &amp; </span><span><span class="hljs-number">0777</span></span><span>;  </span><span><span class="hljs-comment">// Bitweise und operativ,Erhalten Sie den Berechtigungswert der Datei</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Die tatsächlichen Berechtigungen der Datei sind: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">decoct</span></span><span>(</span><span><span class="hljs-variable">$file_permissions</span></span><span>) . </span><span><span class="hljs-string">"\n"</span></span><span>;

</span><span><span class="hljs-comment">// Stellen Sie fest, ob die Dateiberechtigungen die Erwartungen entsprechen</span></span><span>
</span><span><span class="hljs-variable">$expected_permissions</span></span><span> = </span><span><span class="hljs-number">0755</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$file_permissions</span></span><span> === </span><span><span class="hljs-variable">$expected_permissions</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Dateiberechtigungen stimmen mit den Erwartungen überein!\n"</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">"Dateiberechtigungen erfüllen die Erwartungen nicht,Die tatsächliche Erlaubnis ist: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">decoct</span></span><span>(</span><span><span class="hljs-variable">$file_permissions</span></span><span>) . </span><span><span class="hljs-string">"\n"</span></span><span>;
}

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

Code Parsen:

  • Zunächst setzen wir die Dateiberechtigungsmaske über UMask (0022), um sicherzustellen, dass die Genehmigung der neuen Datei 0755 beträgt.

  • Verwenden Sie die Funktion "Datei_put_Contents () , um ein neues Dateibeispiel zu erstellen.

  • Anschließend erhalten wir die Statussinformationen der Datei über die Funktion STAT () , insbesondere den Berechtigungsmodus der Datei ( Modus ).

  • Schließlich wird der Berechtigungsteil der Datei nach bitgewieller Operation ( & 0777 ) extrahiert und mit der erwarteten Genehmigung ( 0755 ) verglichen.

Ausgangsergebnis:

 <span><span><span class="hljs-section">Die tatsächlichen Berechtigungen der Datei sind: 755</span></span><span>
Dateiberechtigungen stimmen mit den Erwartungen überein!
</span></span>

Auf diese Weise können wir effektiv prüfen, ob Dateiberechtigungen nach unseren Anforderungen festgelegt werden, wodurch die Sicherheit der Dateivorgänge sichergestellt wird.