PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   Apache HTTP-Server (http://www.selfphp.de/forum/forumdisplay.php?f=23)
-   -   apache directive User, SuexecUserGroup, AssignUserID (http://www.selfphp.de/forum/showthread.php?t=15548)

xooops 13.12.2006 03:17:53

apache directive User, SuexecUserGroup, AssignUserID
 
ich habe apache unter linux installiert und will mehrere websites von verschiedenen usern serven. dazu habe ich den apache mit name-based virtual hosts konfiguriert. den apache lasse ich als root laufen, will aber, dass beim serven einer website dieser prozess unter demjenigen user laeuft, der diese website anbietet. grund: beim ausfuehren von php soll das php-script natuerlich nur die rechte des jeweiligen users haben, ansonsten koennte per php z.b. in andere directories geschrieben und z.b. andere websites defact werden, usw..

laut apache-doc geht das nicht mit der globalen direktive User, weil sie nicht im VirtualHost-block angegeben werden darf. jetzt habe ich die direktive AssignUserID gefunden, aber laut doc ist sie vom modul perchild und es heisst, this module is not functional.

und mit der direktive SuexecUserGroup gehts auch nicht, da sie nur fuer CGI ist. php ist non-CGI und wuerde weiterhin unter root laufen, was doch scheisse ist.

wer hat erfahrung mit multi-threading unter apache mit versch. usern und kann mir weiterhelfen ?

thx, xooops

meikel (†) 13.12.2006 08:53:16

AW: apache directive User, SuexecUserGroup, AssignUserID
 
suPHP

xooops 19.12.2006 02:00:22

AW: apache directive User, SuexecUserGroup, AssignUserID
 
thx meikel, aber was ist mit beliebigen cgi-programmen ? wie lasse ich die unter non-root laufen ??

ooooooops.

meikel (†) 19.12.2006 07:31:32

AW: apache directive User, SuexecUserGroup, AssignUserID
 
Zitat:

Zitat von xooops (Beitrag 94253)
thx meikel, aber was ist mit beliebigen cgi-programmen ? wie lasse ich die unter non-root laufen ??

Wieso loft Dein Apache überhaupt als root:root und nicht als (zb) wwwrun:www?

xabbuh 19.12.2006 09:26:59

AW: apache directive User, SuexecUserGroup, AssignUserID
 
Zitat:

Zitat von xooops (Beitrag 94253)
thx meikel, aber was ist mit beliebigen cgi-programmen ? wie lasse ich die unter non-root laufen ??

Schon mal suEXEC angesehen?

Zudem bleibt natürlich schon die von meikel gestellte Frage, warum dein Apache als Root läuft.

xooops 20.12.2006 03:01:23

AW: apache directive User, SuexecUserGroup, AssignUserID
 
mein apache lass ich unter root laufen, weils so im manual steht. sonst klappt SuexecUserGroup nicht, was fuer die cgi-scripts wichtig ist. das heisst, ich muss apache unter einem user laufen lassen, der suexec ausfuehren darf.

fuer php ist das aber noch nicht die loesung, weil php nicht als externes cgi-programm laeuft. oder irre ich mich ?

xooops 20.12.2006 03:05:42

AW: apache directive User, SuexecUserGroup, AssignUserID
 
Zitat:

Zitat von meikel (Beitrag 94256)
Wieso loft Dein Apache überhaupt als root:root und nicht als (zb) wwwrun:www?

was fuer rechte haette denn wwwrun ? er muss ja auch in jedes documentroot schreiben duerfen, sonst koennen die php-scripts ja nicht auf dateien schreiben. oder ?

meikel (†) 20.12.2006 10:42:13

AW: apache directive User, SuexecUserGroup, AssignUserID
 
Zitat:

Zitat von xooops (Beitrag 94308)
was fuer rechte haette denn wwwrun ?

Die eines "Popelusers". Den Apachen als Root laufen zu lassen, wäre ein sehr hohes Risiko. IdR. weigert sich der Apache auch, mit Root-Rechten zu arbeiten.

Zitat:

er muss ja auch in jedes documentroot schreiben duerfen, sonst koennen die php-scripts ja nicht auf dateien schreiben. oder ?
Genau das ist ja das Problem mit dem PHP Modul:
der User, der das Script ausführt, ist ein anderer als der User, dem das Verzeichnis gehört.
Das kann umgangen werden, indem jeder User seine Verzeichnisse auf 0777 und alle Dateien auf 0666 setzt.

Natürlich muß hier open_basedir für jedem Virtualhost separat gesetzt werden, damit PHP "nicht in fremden Revieren wildern kann".

Anders ist es bei der CGI Version. Da wird via suexec der PHP Interpreter mit den im Virtualhost angegebenem User gestartet. Und genau das ist eben auch ein Problem, weil man wesentlich mehr Speicher braucht.


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:13:22 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.