Habe heute folgenden PHP-Code gefunden:
mkdir($directory, 02777);
chmod($directory, 02777);
Ich verstehe das PHP, aber nicht den ersten Teil dieser Zahlen. Der 777-Teil ist klar, und wenn ich es richtig verstanden habe, bedeutet die 0 nur, dass es oktal ist. Aber was macht die 2 darin?
Und wenn ich es in 02640 ändere, würde die 2 dann immer noch das tun, was sie tut, oder ändert sie sich je nachdem, was danach kommt?
Antwort1
Diese Oktalziffer besteht aus setuid
, setgid
und sticky
Bits, die alle vergleichsweise komplexe Auswirkungen haben.
Dadurch 2
wird das setgid
Flag gesetzt. Wenn es in einem Verzeichnis vorhanden ist, erben alle darin erstellten Dateien dessen Gruppe und nicht die primäre Gruppe des erstellenden Benutzers.
Mehr zuWikipedia.