2013-03-13 15 views
6

Vor ein paar Tagen, ich zufällig die Berechtigungen zu Unrecht setzen, wenn die PHP-Funktion mkdir wie folgt aus:Falsche Berechtigungen setzt Sticky-Bit

mkdir("foldername", 777, true); 

Der richtige Weg ist, asuming Sie diese Art von Berechtigungen wollen:

mkdir("foldername", 0777, true); 

ich weiß, dass ich nicht 777 auf meinen Dateien oder Ordner verwenden sollte, aber dies für ein sehr geschlossenes System ist, so auf, dass nicht bekommen, stecken bitte. Denn hier kommt zumindest der komische (komische) Teil für mich. Weil wir festgestellt haben, dass etwas sehr merkwürdig war, als dieses Skript Ordner erstellte. Die Persmissions, die gesetzt werden, sind wirklich seltsam, besonders für einen Nicht-Power-User von Linux wie mich. Denn das, was wir sehen, ist, dass die Berechtigungen der erstellten Ordner auf diese gesetzt wird:

dr - - - - x - - t

Was mir fremd ist, hatte ich nicht gehört das Sticky-Bit vorher (das t) aber das ist anscheinend festgelegt, wenn Sie diese Datei nur durch root entfernbar machen möchten. Wer weiß, warum PHP sich so verhält, oder wenn es sogar ein PHP-Problem ist (nicht wirklich ein Problem, da ich dann eines die Funktion falsch nutze), oder ist das etwas, was unser * nix-System im Zweifelsfall standardmäßig macht oder so?

+0

Normalerweise 'mkdir ("Ordnername", 01777, wahr); 'setzt das Sticky-Bit. Nicht sicher, warum nur 777 es setzen würde. –

+2

Die Dateiberechtigungen sind in Oktalschreibweise (Basis 8). 777 ist dezimal da und es bedeutet 01411 oktal, was auch den klebrigen setzt ... – Ihsan

Antwort

4

Die Dateiberechtigungen sind in Oktalschreibweise (Basis 8).

777 ist dezimal dort und es bedeutet, 01411 Oktal, die der klebrig man zu setzt ...

1

jemand diese Frage beantwortet und gelöscht es dann, das ist traurig, weil ich es stark denken, richtig war. Also, wenn Sie das lesen, bitte posten Sie diese Antwort noch einmal, und ich werde es akzeptieren.

Sowieso scheint es, dass PHP die decimal 777-octal 1411 übersetzt, und das wird legen Sie die Berechtigungen zu, was ich bekam, nämlich:

dr - - - - x - - t