apache directive User, SuexecUserGroup, AssignUserID

Alles, was den Apache betrifft, kann hier besprochen werden.

apache directive User, SuexecUserGroup, AssignUserID

Postby xooops » 13. December 2006 03:15

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
- ooops
xooops
 
Posts: 3
Joined: 13. December 2006 02:42

hilfe

Postby xooops » 19. December 2006 01:39

wieso antwortet mir keiner ?

waere wirklich erfreut, wenn mir einer helfen koennte.

xooops
- ooops
xooops
 
Posts: 3
Joined: 13. December 2006 02:42

Postby deepsurfer » 19. December 2006 01:58

Wer sagt das man die Suexec Rechte nicht im VHOST Block einsetzen darf...das macht jeder grosse Anbieter so...

Code: Select all
<VirtualHost *:80>
  ServerName dummydomain.de
  DocumentRoot /var/www/htdocs/userpfad
  SuexecUserGroup usergroup usergroup
  ScriptAlias /cgi-bin/ /var/www/htdocs/userpfad/cgi-bin/
  <IfModule mod_python.c>
    <Files ~ "\.py$">
      AddHandler python-program .py
      PythonHandler mod_python.publisher
    </Files>
  </IfModule>
  php_admin_value open_basedir /var/www/htdocs/userpfad/:/var/www/phptmp/:/var/www/files/
  php_admin_value file_uploads 1
  php_admin_value upload_tmp_dir /var/www/phptmp/
</VirtualHost>


Um mit PHP nicht überall hinein zu dürfen musst du halt den "open_basedir " definieren, dann ist schluss mit lustig :)
chirio Deep
Wie sagte einst der MCP aus Tron auf dem Bildschirm zu schreiben Pflegte
" ... end of communication ... "
User avatar
deepsurfer
AF Moderator
 
Posts: 6440
Joined: 23. November 2004 10:44
Location: Cologne
Operating System: Win-XP / Win7 / Linux -Debian

Postby xooops » 19. December 2006 02:28

danke fuer deine antwort. tja, fuer php scheint es nur die loesung mit open_basedir zu geben, schade. denn damit habe ich zwar die file-zugriffe eingeschraenkt, aber leider laeuft php dann immer noch unter root, was mir unbehagen bereitet.
- ooops
xooops
 
Posts: 3
Joined: 13. December 2006 02:42

Postby Knight1 » 04. January 2007 08:22

xooops wrote:... aber leider laeuft php dann immer noch unter root, was mir unbehagen bereitet.


Das gleiche Problem habe ich auch. Nur anstatt root ist es bei mir der nobody.

Ich habe im Script eine Stelle wo ich ein Verzeichniss anlege und Dateien erstelle. Alle werden unter dem Benutzer nobody angelegt/erstellt.

Hier mal einer der VHost-Container:
Code: Select all
NameVirtualHost *:80
<VirtualHost *:80>
   ServerName   tce.kkordel.dyndns.biz.de:80
   UseCanonicalName Off
   SuexecUserGroup      tceimsheim www
   ServerAdmin  "kkordel@web.de"
   DocumentRoot /www/projekte/tennis
   CustomLog  /www/logs/tce/access_log common
   ErrorLog   /www/logs/tce/error_log
   <IfModule mod_ssl.c>
      SSLEngine off
   </IfModule>
   <Directory /www/projekte/tennis>
   <IfModule mod_php4.c>
      php_admin_flag engine on
      php_admin_flag safe_mode on
      php_admin_value open_basedir "/www/projekte/tennis:/tmp"
   </IfModule>
   <IfModule mod_php5.c>
      php_admin_flag engine on
      php_admin_flag safe_mode on
      php_admin_value open_basedir "/www/projekte/tennis:/tmp"
   </IfModule>
      Options +Includes +ExecCGI +Indexes
      Order allow,deny
      Allow from all
   </Directory>
</VirtualHost>


Generell funtioniert der so. OHNE irgendwelche Fehler-/Error-Meldungen. Nur dass Die User- und Gruppenzuordnung nicht stimmt.

Hat da vielleicht jemand einen Tipp?


Kai aka Knight1
Image
User avatar
Knight1
 
Posts: 310
Joined: 18. October 2003 10:03
Location: Trier
Operating System: Windows 7 Ultimate x64


Return to Apache

Who is online

Users browsing this forum: No registered users and 150 guests