Page 1 of 1

PHP-erzeugte Standard Dateiberechtigungen setzen

Posted: 2003-10-14 19:25
by vpn-user
Sorry für das Crossposting in "Scripting", aber mein Problem betrifft sowohl Apache als auch PHP:

Hallo Group,

wie kann ich systemweit die Berechtigungen (UNIX) für von PHP erstellte oder hochgeladene Dateien festlegen?

Ich betreibe PHP als CGI mit Apache und SuEXEC. Damit SuEXEC korrekt arbeitet, erhalten alle Dateien den Besitzer des ausgeführten Scripts als neuen Besitzer. Das ist auch gut so, auch die Gruppe wird übernommen. Allerdings erhält nur der Besitzer Lese- & Schreibrecht, nicht die Gruppe (Bei mir Apache). Wie kann ich das systemweit definieren, dass auch Apache (Group) lesen darf?

Ein "chmod($uploaded_file, 0740);" fällt flach, ich kann schlecht jedem Kunden zumuten, seine Scripts anzupassen.

Was habe ich für Möglichkeiten?

Grüße vom Bodensee
Mario

Re: PHP-erzeugte Standard Dateiberechtigungen setzen

Posted: 2003-10-14 19:31
by s4fuser
Soll ich meine Fragen zu einem PHP-Skript, das auf eine mySQL-DB zugreift, jetzt in
- Datenbanken,
- Scripting,
- Webserver (das Problem könnte auch am Apache liegen) und
- Newbie (ich bin Newbie)
schreiben?

Re: PHP-erzeugte Standard Dateiberechtigungen setzen

Posted: 2003-10-14 19:38
by jamesb
s4f-User: erstmal in Scripting, wenn's sich auf den MySQL-Query bezieht, ins Datenbanken, wenn du dir sicher bist, dass der Apache (oder das PHP-Binary) selbst dran schuld ist, da rein und wenn du dir die Frage selbst in 30 Sekunden beantworten könntest, ins Newbie :-)

VPN-User: Ist dann doch eher eine Apache/PHP-spezifische Frage, darum hab' ich das x-post im Scripting gelöscht.

Zu deiner Frage :-): Du meinst, die hochgeladenen Dateien bekommen 700 als umask? So wie du das beschreibst hat dein PHP-Script dann also auch die umask 700? Warum nicht einfach 755 bzw. 644 (je nach Einstellungen)?
Andere Möglichkeit (mein Favorit :)) wäre der Einsatz von suPHP... Aber wenn deine Konfig mit suExec schon läuft wäre ein Umstieg nicht das Gelbe vom Ei.

JamesB

Re: PHP-erzeugte Standard Dateiberechtigungen setzen

Posted: 2003-10-14 20:27
by vpn-user
JamesB wrote:Zu deiner Frage :-): Du meinst, die hochgeladenen Dateien bekommen 700 als umask? So wie du das beschreibst hat dein PHP-Script dann also auch die umask 700? Warum nicht einfach 755 bzw. 644 (je nach Einstellungen)?
Nein, die Dateien erhalten 600 als Umask. Wie und wo kann ich die denn ändern? In der PHP.INI habe ich nichts gefunden.
JamesB wrote:Andere Möglichkeit (mein Favorit :)) wäre der Einsatz von suPHP... Aber wenn deine Konfig mit suExec schon läuft wäre ein Umstieg nicht das Gelbe vom Ei.
Diese Lösung fällt leider flach, da keine wirklich sichere PHP-als-Modul & Kundenhostingumgebung (mit eigenem Zugang) ausser der CGI-SuEXEC(CHDIR)-Variante gibt. Klar, performanter wäre es, zumal man auch Cachingmodule für PHP einsetzen kann usw., aber ist eben nicht sicher genug für meine Zwecke.

Re: PHP-erzeugte Standard Dateiberechtigungen setzen

Posted: 2003-10-14 20:51
by jamesb
Diese Lösung fällt leider flach, da keine wirklich sichere PHP-als-Modul & Kundenhostingumgebung (mit eigenem Zugang) ausser der CGI-SuEXEC(CHDIR)-Variante gibt.[/quote]
suPHP bedeutet nicht, das PHP als Modul läuft, sondern über ein suexec-ähnlichen Wrapper gestartet wird - d.h. maximale Sicherheit (so hoch wie bei suexec), nur eben speziell für PHP zugeschnitten.

JamesB

Re: PHP-erzeugte Standard Dateiberechtigungen setzen

Posted: 2003-10-14 21:17
by vpn-user
JamesB wrote:suPHP bedeutet nicht, das PHP als Modul läuft, sondern über ein suexec-ähnlichen Wrapper gestartet wird - d.h. maximale Sicherheit (so hoch wie bei suexec), nur eben speziell für PHP zugeschnitten.
Hm. Und warum steht dann bei Voraussetzungen für SuPHP "mod_php"? Also PHP als Modul?

Egal, ich brauche SuEXEC, da auch Perl- und Pythonscripte ausgeführt werden können sollen.

Du verschweigst mir, wie man das mit der UMASK macht :roll:

Re: PHP-erzeugte Standard Dateiberechtigungen setzen

Posted: 2003-10-14 23:29
by Joe User
VPN-User wrote:Du verschweigst mir, wie man das mit der UMASK macht :roll:
http://httpd.apache.org/docs-2.1/suexec.html

Re: PHP-erzeugte Standard Dateiberechtigungen setzen

Posted: 2003-10-15 00:09
by vpn-user
Supi. Ohne diese Anleitung hätte ich SuEXEC wohl kaum zum Laufen gebracht. Darin steht aber nichts über neu angelegte Dateien, die z.B. PHP erzeugt!

Re: PHP-erzeugte Standard Dateiberechtigungen setzen

Posted: 2003-10-15 14:24
by vpn-user
@JamesB? Du wolltest mir doch weiterhelfen 8) ...

Re: PHP-erzeugte Standard Dateiberechtigungen setzen

Posted: 2003-10-15 19:10
by jamesb
Dein umask-Problem ist wohl eher ein PHP-Problem als ein Problem mit SuEXEC. Ist in der php.ini vielleicht was falsch eingestellt?

Und zu suPHP: Wo bitte steht dass man mod_php braucht? Du brauchst das PHP-Binary und suPHP, welches einmal ein Modul für Apache ist (zur Integration) und eine externe Binary, welches vom Modul ausgeführt wird und dann die Aufgaben von suExec übernimmt.

JamesB

Re: PHP-erzeugte Standard Dateiberechtigungen setzen

Posted: 2003-10-15 19:33
by vpn-user
Also in der PHP.INI habe ich ausser dem Pfad für Sessions niemals etwas geändert. Wo soll man denn das mit der UMASK einstellen können? SuPHP schweigt sich dazu ja auch aus... Ausserdem läuft es nicht mit Apache2, den ich einsetze.

Re: PHP-erzeugte Standard Dateiberechtigungen setzen

Posted: 2005-09-21 16:16
by hever
Hallo,
ich habe suPHP laufen und hatte denke ich ein ähnliches wenn nicht sogar das gleiche problem wie du. (Dieser thread ist etwas undurchsichtig).

Soweit ich weiß gibt es keine Möglichkeit die umask in der php.ini zu beeinflussen, jedoch kann man sie in der /etc/suphp/suphp.conf ändern. (umask = xxxx)

Die umask kann auch in php für das aktuelle script mit dem befehl umask geändert werden. Guck mal in die doku auf php.net dort gibts auch noch weitere informationen zur umask.

Re: PHP-erzeugte Standard Dateiberechtigungen setzen

Posted: 2005-09-22 10:49
by rootsvr
Wenn ich das richtig verstanden hab:
Du hast ein Problem das dein per suExec laufender Server neue Dateien mit nur Owner-darf rechten erstellt) 600? und Du willst jetzt noch den Apache dazu haben?

Wofür bitte?

Der Vorteil von suExec ist doch eben das es nur der Besitzer lesen darf und der Apache als eben dieser User ausführt.. ich seh den Sinn nicht.

wie man die Default UMask ändert (nehme an es ist die Standardmäßige) müßte ich nachgucken, umask ist nen anfang ;-)