chmod per system() bzw. exec()
Simone
- php
HI
Mein Server läuft im Save Modus
Jetzt versuche ich per system
diesen Befehl auszuführen
um die Rechte ändern zu können (ohne ftp)
system("chmod -R 777 "/home/sites/sitexyz/www/verzeichniss" ");
warum geht das nicht?
simone
Hello,
Mein Server läuft im Save Modus
Es wird wohl dein PHP sein, das im safe_mode läuft.
Jetzt versuche ich per system
diesen Befehl auszuführen
um die Rechte ändern zu können (ohne ftp)system("chmod -R 777 "/home/sites/sitexyz/www/verzeichniss" ");
warum geht das nicht?
Weil im safe_mode die Programme, die mit exec() & Co aufgerufen werden sollen, im safe_mode_exec_dir liegen müssen.
Liebe Grüße aus http://www.braunschweig.de
Tom
Hi Tom
Ich probier jetzt schon seit Tagen ...
Das will einfach nicht laufen wie kann ich die Rechte im safe_modus (PHP :)) vergeben ?
Gebt mir mal ein Beispiel ( Google ist auch nicht mehr das was es mal war )
Simone
HI nochmal ich
phpinfo() sagt das.
safe_mode_exec_dir /usr/local/apache/www/empty
/usr/local/apache/www/phpbin
wie starte ich dort eine Anwendung in Richtung exec()
Danke
Simone
Hello,
HI nochmal ich
phpinfo() sagt das.
safe_mode_exec_dir /usr/local/apache/www/empty
/usr/local/apache/www/phpbinwie starte ich dort eine Anwendung in Richtung exec() ^
|
Da fehlt ein Fragezeichen *gg* -------------------+
Einfach Kopien der Programme dort ablegen, nur für den User des Webswervers freigeben und dann im PHP-Script Exec() oder system() oder $antwort = befehl
aufrufen. PHP sucht sich den Pfad selber.
Liebe Grüße aus http://www.braunschweig.de
Tom
HI Tom
Meine Tastatur hätte bald mit dem Bildschirm eine harte Auseinandersetzung gehabt.
Ich raff es nicht ..
Ok, ich möchte die Rechte von Verzeichnissen ändern. Das muß ich im safe_modus per system() oder per cgi machen. cgi kann ich nicht bleibt system über.
Mein Beispiel:
if(!(file_exists(IMAGE_DIR . $path))) {
if(!(@mkdir(IMAGE_DIR . $path, 0777))) //geht ja nicht 0777 (save modus)
// jetzt kommts ---->
system ("chmod 0777 ".IMAGE_DIR . $path);
// ----> das sollte starten und mir die Rechte ändern ??
}
Soweit so ungut!
Simone
Hello,
Ok, ich möchte die Rechte von Verzeichnissen ändern. Das muß ich im safe_modus per system() oder per cgi machen. cgi kann ich nicht bleibt system über.
Was mit chmod() und chgrp() nicht geht, geht mit System und chmod auf Systemebene auch nicht, da der Befehl unter dem user des Apachen ausgeführt wird und nicht unter ROOT und ich hoffe doch sehr stark, dass der Apache nicht als Root läuft bei Dir.
Es gibt aber einen Supi Workaround fpr das Problem:
Schreib Dir einen Cron-Job, der von Root gestartet wird.
Bestimm ein Verzeichnis, in dem Du die zu ändernden Rechte unter einer Schlüsselnummer ablegst. Das geht auch mit PHP
Bestimm eine Datei in einem anderen Verzeichnis, in der Du die Schlüsselnummer und deine TAN (falls noch mehr SIcherheit notwendig ist) ablegst.
Lass den Cron-Job alle zwei Minuten gucken, ob ein neuer Auftrag nebst passendem Schlüssel da ist. Dann lass ihn ausführen.
Kapiert, wie ich das meine?
system ("chmod 0777 ".IMAGE_DIR . $path);
Und welche Fehlernummer gibt System zurüc`k. Hast Du das schon mal debuged?
Liebe Grüße aus http://www.braunschweig.de
Tom
Hello Simone,
Ich geh jetzt mal von Linux und Apche aus, ok?
erstmal muss der wwwrun oder apache oder wie der User des Webservers auch immer heißt zu diesem Zweck der Owner der Dateien oder Verzeichnisse sein, sonst darf er keine Rechte ändern.
Wenn er das ist, dann kann man die Befehle chmod() und chgrp() benutzen.
http://de.php.net/manual/de/function.chmod.php
Sonst hat er auch mit den System-Calls keine Chance.
Liebe Grüße aus http://www.braunschweig.de
Tom