PHP-erzeugte Standard Dateiberechtigungen setzen
PHP-erzeugte Standard Dateiberechtigungen setzen
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
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
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?
- Datenbanken,
- Scripting,
- Webserver (das Problem könnte auch am Apache liegen) und
- Newbie (ich bin Newbie)
schreiben?
Re: PHP-erzeugte Standard Dateiberechtigungen setzen
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
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
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: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)?
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.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.
Re: PHP-erzeugte Standard Dateiberechtigungen setzen
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
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
Hm. Und warum steht dann bei Voraussetzungen für SuPHP "mod_php"? Also PHP als Modul?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.
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
http://httpd.apache.org/docs-2.1/suexec.htmlVPN-User wrote:Du verschweigst mir, wie man das mit der UMASK macht :roll:
Re: PHP-erzeugte Standard Dateiberechtigungen setzen
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!Joe User wrote:http://httpd.apache.org/docs-2.1/suexec.html
Re: PHP-erzeugte Standard Dateiberechtigungen setzen
@JamesB? Du wolltest mir doch weiterhelfen 8) ...
Re: PHP-erzeugte Standard Dateiberechtigungen setzen
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
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
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
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.
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
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 ;-)
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 ;-)
