Wenn es keine Übereinstimmung gibt, kann auch kein Bit mit 1 belegt werden. Und wenn kein Bit mit 1 belegt wird, ist der Wert gleich 0.
Ein Beispiel zur Ermittlung vorhandener Privilegien:
PHP-Code:
// Dateirechte Eigentümer, Gruppe, sonstige (r=lesen, w=schreiben, x=ausführen, -=nicht gesetzt)
$mode = 0755; // entspricht rwxr-xr-x
// Benutzer A möchte Datei von Benutzer B nur lesen
$perm = 0001; // da Benutzer A nicht Eigentümer der Datei ist, muss „others“ mind. die Leseerlaubnis haben
var_dump( ($mode & $perm) == $perm );
// Benutzer A möchte nun diese Datei nur beschreiben
$perm = 0002; // da Benutzer A nicht Eigentümer der Datei ist, muss „others“ mind. die Schreiberlaubnis haben
var_dump( ($mode & $perm) == $perm );
// Benutzer A möchte nun diese Datei nur ausführen
$perm = 0004; // da Benutzer A nicht Eigentümer der Datei ist, muss „others“ mind. die Ausführerlaubnis haben
var_dump( ($mode & $perm) == $perm );
// Benutzer B möchte seine Datei nur lesen und beschreiben
$perm = 0300; // da es seine Datei ist, reicht es „owner“ zu prüfen
var_dump( ($mode & $perm) == $perm );
// Benutzer B möchte seine Datei nur ausführen
$perm = 0400;
var_dump( ($mode & $perm) == $perm );
Du kannst das Beispiel auch gerne mit einem anderen Dateimodus (Zugriffsrechte) ausprobieren und beispielsweise nur dem Eigentümer keine Lese- und Schreibrechte, aber keine Ausführrechte (0300) geben.