# Apache und FTP-Server auf SUSE: Probleme mit den Berechtigungen/User/Gruppen



## lukelukeluke (20. Oktober 2005)

Hallo zusammen. Folgendes habe ich installiert/konfiguriert:
Suse Linux 9.1 Pro, Apache2.0.55, MySQL 4.1.14, PHP 5.0.5, Pure-FTPd 1.0.18, div libs

Das Problem sind Rechte. Ich kriege es nur hin die Seite mit Apache anzuzeigen (ohne Forbidden Fehler), wenn ich mit chmod 777 den webseite1 Ordner bestücke.
Wenn ich mit FTP Zugang was in den ordner webseite1 hochlade, hat dies automatisch -rw-------. Und Apache zeigt nur Forbidden anstatt der Datei. Der FTP User ist virtuell und dem Systemuser ftpuser und der Systemgruppe ftpgroup zugeordnet, wie bei Pureftpd beschrieben.
Folgendermassen sieht meine Struktur aus:

drwxr-xr-x root root /srv
drwxrwxrwx ftpuser ftpgroup /srv/webseite1
drwxrwxrwx ftpuser ftpgroup /srv/webseite2

httpd.conf (nur das wichtisgste daraus):

```
ServerRoot "/usr/local/apache2"
DocumentRoot "/usr/local/apache2/htdocs"
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Options -Indexes
</Directory>
<Directory "/usr/local/apache2/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
<Directory "/srv/*">
        AllowOverride All
        Options MultiViews Indexes Includes FollowSymLinks
        <IfModule mod_access.c>
                Order allow,deny
                Allow from all
        </IfModule>
</Directory>
<VirtualHost *:80>
        ServerAdmin test@test.com
        DocumentRoot /srv/webseite1
        ServerName test.com
        TransferLog /srv/webseite1/access_log
</VirtualHost>
Listen *:8080
<VirtualHost *:8080>
        ServerAdmin test@test.com
        DocumentRoot /srv/webseite2
        ServerName test.com
        TransferLog /srv/webseite2/access_log
</VirtualHost>
```
Die httpd.conf scheint in Ordnung zu sein. Die 2 Webseiten funktionieren wenn ich den Files alle Rechte gebe...

Hat Apache auch noch irgend einen User, irgendeine Gruppe, welcher/welche irgendwo hinzugefügt werden muss?
Ich brauche einfacht nur die Möglichkeit zu uploaden, das dann mit Apache anzuzeigen, und auch Rechte setzen zu können, also gewisse php Files mit 777, andere nur normal.
Was mache ich falsch?
Vielen Dank!
-luke


----------



## Dennis Wronka (20. Oktober 2005)

Apache laeuft in der Regel als User nobody, Gruppe nobody oder nogroup.
Schonmal auch als User wwwrun.

Dies kann man auch alles in der httpd.conf einstellen.


----------



## lukelukeluke (20. Oktober 2005)

Hi Dennis,
Vielen Dank für die schnelle Antwort!
ich habe in der httpd.conf mal
*User nobody
Group #-1*
durch
*User ftpuser
Group ftpgroup*
ersetzt.
Das ist nun der gleiche User / die gleiche Gruppe wie die FTP-Benutzer haben...
Nun funktioniert es schonmal soweit, dass ich Files Uploaden kann, welche Apache dann auch anzeigt ohne Fehler.
Struktur momentan:

*drwxr-xr-x* root root /srv
*drwx------* ftpuser ftpgroup /srv/webseite1
*drwx------* ftpuser ftpgroup /srv/webseite2
*-rw-------* ftpuser ftpgroup /srv/webseite2/index.htm (automatisch gesetzt worden beim Upload via FTP Client)

Machen diese Berechtigungen Sinn? Gibt es da gröbere Sicherheitsprobleme damit? Muss ich evtl. noch etwas mit chroot machen? Habe viel davon gelesen in Anleitungen, bin aber nie darauf gestossen was es eigentlich macht, man hilft auch nicht gerade weiter...


----------



## Dennis Wronka (21. Oktober 2005)

Im Grunde sollte das soweit okay sein.
Ich weiss nicht genau wie umfassend die Rechte des FTP-Users sind, aber er wird wohl nicht mehr als ein normaler User koennen denke ich.
Du brauchst Apache auch nicht unbedingt in einer chroot-Umgebung laufen lassen. Wenn Du Deinen Apache aktuell haeltst solltest Du eigentlich kein Problem mit Zugriffen auf Verzeichnisse ausserhalb des DocRoots haben.


----------

