phpbar.de logo

Mailinglisten-Archive

[php] chmod für dateien

[php] chmod für dateien

Egon Schmid eschmid_(at)_s.netic.de
Mon, 15 Nov 1999 19:27:30 +0100


Ralf Beutler wrote:

> <snip>
> $file_id = fopen("fortsetzungen/".$file_name.".mcs", "w") or die("Fehler
> beim ...");
> $ok = fputs($file_id, $new_txt) or die("Fehler beim ...");
> $ok = fclose($file_id) or die ("Fehler beim ...");
> 
> chmod("verzeichnis/".$file_name.".txt", 0766);
> </snip>
> 
> ___Das funktioniert.
> 
> Nur habe ich jetzt eine Datei in meinem Verzeichnis,
> die Lese- und Schreibrechte auf den other-Rechten hat.
> Da dachte ich mir, ändere doch einfach bei einer bestehenden Datei
> mit nur Leserechten mit gleichem Befehl die Rechte
> auf Lesen und Schreiben
> und öffne dann die Datei zum schreiben.
> Nach dem Schließen der Datei setzte ich die rw- Rechte
>  wieder auf r-- für other zurück.
> Aber das funktioniert nicht!
> error: chmod schlägt fehl mit der Meldung: "You have no permission to ...".
> Warum habe ich (mein Script) keine Rechte dafür?

Kurze Antwort aus Stuttgart (die ellenlange wird bestimmt Morgen von
Kristian folgen, ups die ist ja schon da und auch noch so winzig):
der Apache wird standartmäßig unter dem User nobody und der Gruppe
nogroup betrieben. Wenn man dann andere Dateien, die einem anderen
Benutzer oder einer anderen Gruppe gehöhren, ändern will, dann die obige
Fehlermeldung. Da nobody/nogroup fast keine Rechte besitzen bleibt oft
nur der Umweg über den User root. 

Das sollte man aber aus Sicherheitsgründen lieber dem
Systemadministrator überlassen.

> Problem: die Dateien liegen mit Lese und Schreibrecht auf dem Webserver.
> Deswegen wollte ich kurz vor dem Öffen und gleich nach dem Schließen die
> Rechte verändern.
> Aber das geht bei mir nicht!!!!! :-((( oder ich bin zu blöd

Ne, ich bin auch nur ein normaler Benutzer, und die obigen
Fehlermeldungen sehe ich auch häufig, wenn man etwas ändern will, was
man nicht machen sollte. Das ist mit einer Shell im Prinzip genau
dasselbe. Ich würde nie darauf kommen, das mit PHP zu tun. Soweit ich
Dich verstanden habe, willst Du Dateien die nicht von PHP angelegt
worden sind, mit den obigen Methoden verändern. Dazu nimmt man eine
Shell, wechselt auf den User root und macht einen rekursiven chown.
Danach sollte es gehen.
 
> p.s. kleine Frage noch:
> ich habe bei euch die Empfehlung gelesen, mit "or die" zu arbeiten.
> Die Fehlermeldungen des php-parsers werden aber trotzdem angezeigt, plus
> meine persönliche Meldung.
> Ich dachte, man kann damit Fehlermeldungen abfangen wie in Java? Aber is
> wohl nicht.?!?

Fehlermeldungen kann man mit dem _(at)_ Zeichen unmittelbar vor dem
Funktionsnamen unterdrücken.
 
-Egon


php::bar PHP Wiki   -   Listenarchive