Apache Konfiguration/Userberechtigungen

Osiris1

Lt. Junior Grade
Registriert
Feb. 2008
Beiträge
351
Hallo

Ich lasse auf meinem Raspberry Pi einen Apache Webserver laufen. Das funktioniert soweit. Allerdings habe ich Probleme bei den Userrechten. Derzeit schaut die Sache so aus:

1. Das root Verzeichnis des Webservers ist var/www
2. Owner von var/www ist Root
3. Die Group von var/www ist www-data
4. Der Apache Server benutzt glaub ich hauptsächlich den User www-data (da ist eine liste mit einige prozessen davon laufen ca 5 unter www-data und 2 unter Root)
5. Jeder Unterordner in var/www is als weitgehend eigenständige homepage gedacht

Es gibt einen ftp zugang für den user ftp-user
1. ftp-user gehört zur group www-data
2. das homeverzeichniss von ftp-user ist var/www

Ich bin ein Neuling was die Konfiguration von Servern unter Linux betrifft. Deswegen würde ich gerne wissen was in der Hinsicht best practice ist und was ich tun muss damit ich dort hinkomme.

- Wie soll ich Owner und Group der Ordner setzen?
- Wie sollten die Berechtigungen gesetzt werden "7??"?
- Was soll ich mit facl (ist bereits installiert) einstellen damit die Berechtigungen bei neuen files automatisch richtig gesetzt werden?

Ich bräuchte auch ein bisschen Hilfe mit den Befehlen. Bisherige Tutorials waren auch eher wenig aufschlussreich, da sie meist nicht sonderlich allgemein gehalten waren oder nur aus einer Liste von Befehlen ohne Erklärung bestanden haben.

Danke schon im Voraus!
lg
 
Zuletzt bearbeitet:
hallo

der ftp-user wird, da er ja www-data angehört, auch dahinkommen wo der apache hinkommt. Das bedeutet auf die Seiten die ausgeliefert werden.

750 oder 755 sollten rechtemäßig reichen.

was möchtest du mit dem allem genau bezwecken ? für FTP-user bietet sich eher ein gesonderter ordner an.

warum facl ? du kannst auch einfach mit chmod. chown arbeiten.
 
facl weil ich nicht jedesmal die rechte anpassen will wenn ich einen neuen ordner erstellt habe.

der ftp-user wird, da er ja www-data angehört, auch dahinkommen wo der apache hinkommt. Das bedeutet auf die Seiten die ausgeliefert werden.

das heißt alle subfolder gehören dann dem ftp-user? warum nicht www-data? wenn jemand die seite aufruft, welcher user wird da verwendet?

was ich damit bezwecken will: ich will einen webserver laufen lassen. den ftp-user brauche ich um auf die files über einen ftp client zuzugreifen. gut könnte ich auch anders machen, aber so ist es einfacher. deswegen ist das homeverzeichnis von ftp-user auch var/www damit ich mich nicht jedesmal durchklicken muss bis ich dort bin.
 
standardmäßig gehört das alles der Gruppe www-data. Die Subfolder gehören dem der sie erstellt hat, oder dem zu die Rechte zuweist.
Wenn die Seite aufgerufen wird wird der Benutzer www-data genutzt.

Da dein ftp-user auch zur Gruppe www-data gehört ist das jedoch kein Problem.

Du kannst die Rechte der Ordner auch mit Hilfe von umask bestimmen, damit sparst du dir das zusätzliche Programme, wobei das auch nicht weh tun sollte. :)

Weitere Erklärungen und wo du umask festlegst findest du unter dem Link, wobei facl wohl Einsteigerfreundlicher ist denk ich. (Hab es selbst noch nie benutzt).
http://www.cyberciti.biz/tips/understanding-linux-unix-umask-value-usage.html
 
Zuletzt bearbeitet:
im var ordner:

sudo setfacl -R -m u::rwx,g::rx,o:rx www

das sieht für mich nach 755 aus...
die ordner haben jetzt aber 775.
wenn ich mit filezilla (ftp-user) eine datei hinzufüge hat diese neue datei 664

außerdem haben alle files und ordner owner ftp-user group ftp-user.
nur der www ordner selber hat owner root und group www-data.

was mache ich falsch?

EDIT:
getfacl:

# file: www
# owner: root
# group: www-data
user::rwx
user:www-data:rwx
group::r-x
group:www-data:r-x
mask::rwx
other::r-x
default:user::rwx
default:group::rwx
default:group:www-data:rwx
default:mask::rwx
default:other::r-x
Ergänzung ()

so... hab mal die ganze liste gelöscht und neu eingestellt:

# file: www/flow
# owner: ftp-user
# group: ftp-user
user::rwx
group::r-x
other::r-x
default:user::rwx
default:group::r-x
default:other::r-x


das gilt jetzt auch für alle unterordner. die haben jetzt alle die richtigen rechte. nur neu im ftp client erstellte dateien haben 644...

Interessanterweise kann ich über den Browser auch auf Dateien mit 644 zugreifen. hm....
 
Zuletzt bearbeitet:
Best Practice? Man lässt Apache NICHT als www-data laufen, sondern jede Seite als eigener User. Wie? Da gibts verschiedene Ansätze (aber alle setzen auf Virtuelle Hosts, sprich einzigartige Domains pro Webseite).
1.) suPHP... einfach einzurichten, aber wirklich zweifelhafte Leistung. da geht z.B. kein APC
2.) MPM-ITK als Multi-Process-Manager (statt des normalen mpm-prefork)... 2-3 Zeilen extra pro VHost-Conf und alles läuft... perfekte Lösung, weil hier die Rechteverwaltung da landet, wo sie hin gehört: zum Apache Process Manager
3.) SuEXEC mit FastCGI geht auch, is aber mit am hässlichsten zu konfigurieren

Wenn du dann pro VHost/Domain/Webseite n eigenen User angelegt hast, musst du nur noch für jeden User noch die passende FTP-Geschichte anlegen. Praktischster Ansatz ist hier, wie ich finde, ne kleine MySQL-Datenbank und ein FTP-Server, der User Credentials aus eben dieser auslesen kann (z.B PureFTP)
 
Zurück
Oben