Hallo liebe Wissenden.
Ich habe ein massives Problem mit Apache unter Linux.
Ich möchte gerne, dass einzelne User persönliche Webseiten in ihrem Homeverzeichnis unter public_html ablegen können. Die, meines Wissens nach, nötigen Einstellungen in der httpd.conf habe ich vorgenommen. Das Modul UserDir wird auch geladen. Aber immer wenn ich auf eine spezielle Userwebsite zugreifen möchte bekomme ich nur ein Forbidden. Das Problem ist, dass ich den Pfad zum UserDir mit 777 mehr als offen habe, also könnte es daran schon mal nicht liegen. Daher poste ich im Folgenden den, hoffentlich relevanten, Auszug aus der httpd.conf:
UserDir is disabled by default since it can confirm the presence
of a username on the system (depending on home directory
permissions).
#UserDir disable
To enable requests to /~user/ to serve the user’s public_html
directory, remove the „UserDir disable“ line above, and uncomment
the following line instead:
UserDir public_html
Control access to UserDir directories. The following is an example
for a site where these directories are restricted to read-only.
Da ich nur die Configdatei httpd.conf habe, nehme ich an, dass der Apache definitiv nicht Version 2 sein sollte. Er wurde zusammen mit Red Hat Enterprise Linux 4 erstellt.
Ich hoffe, dass mir hier geholfen werden kann. Denn ich bin wirklich mit dem Latein am Ende. Ich freue mich auf eure Antworten.
Aber immer wenn ich auf eine spezielle Userwebsite zugreifen
möchte bekomme ich nur ein Forbidden.
Was genau steht in der error.log?
Das Problem ist, dass
ich den Pfad zum UserDir mit 777 mehr als offen habe, also
könnte es daran schon mal nicht liegen.
Wenn dein userdir /home/foo/public_html/ ist, muessen /home, /home/foo und /home/foo/public_html/ die r und x flags fuer den Apache-User (oder fuer „other“) gesetzt haben.
BTW 777 ist immer eine schlechte Idee, der Apache braucht keine Schreibrechte (hoechstens vielleicht CGI-Programme). 755 sollte schon klappen.
Solltest du Selinux einsetzen nutzen dir alle permissions nicht, dann musst du den security context der Verzeichnisse noch anpassen.
Das Problem ist, dass
ich den Pfad zum UserDir mit 777 mehr als offen habe, also
könnte es daran schon mal nicht liegen.
Wenn dein userdir /home/foo/public_html/ ist, muessen /home,
/home/foo und /home/foo/public_html/ die r und x flags fuer
den Apache-User (oder fuer „other“) gesetzt haben.
Oh, da haben wir über Kreuz gepostet … Read brauchst du noch nicht mal, auf alle Verzeichnisse über public_html reicht x (Apache muss nur in das Verzeichnis wechseln, nicht auflisten).
Wenn dein userdir /home/foo/public_html/ ist, muessen /home,
/home/foo und /home/foo/public_html/ die r und x flags fuer
den Apache-User (oder fuer „other“) gesetzt haben.
Das hab ich bisher noch nicht kapiert. Hat das was zu tun wer owner der Datei, bzw. des Ordners ist?
BTW 777 ist immer eine schlechte Idee, der Apache braucht
keine Schreibrechte (hoechstens vielleicht CGI-Programme). 755
sollte schon klappen.
Das 777 nicht grad wirklich gut ist, ist mir klar. Ist ja auch nur erstmal zum Testen. Zumal das System sowieso in einem eigenen, getrennten netzt in einer ESX-Umgebung läuft.
Solltest du Selinux einsetzen nutzen dir alle permissions
nicht, dann musst du den security context der Verzeichnisse
noch anpassen.
Dann überprüfe mal die Rechte des übergeordneten Verzeichnisses, also von /home/user1
Das müssen andere ja auch lesen und betreten können, also mal auf 717 setzen.
Dann überprüfe mal die Rechte des übergeordneten
Verzeichnisses, also von /home/user1
Das müssen andere ja auch lesen und betreten können, also mal
auf 717 setzen.
/home/user1/public_html = 755
Leider klappt der Zugriff immer noch nicht
Auch nicht nach „Aktuelle Seite neu laden“? Wegen dem Cache, vergisst man ja manchmal…
Im Moment weiss ich nicht weiter, die Rechte stimmen, deine httpd.conf sieht aus wie meine, bis auf die Ausnahme, daß mein IfModule erst hinter dem Directory-Block geschlossen wird, aber das kann es ja wohl nicht sein:
UserDir public\_html
#
# Control access to UserDir directories. The following is an example
# for a site where these directories are restricted to read-only.
#
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Order allow,deny
Allow from all
Order deny,allow
Deny from all
Bist Du sicher, daß Du SELinux nicht benutzt? In Kernel 2.6.x ist es ja explizit drin und gerade bei Red Hat Enterprise Linux 4 würde ich vermuten, daß es dort standardmäßig on ist, da ja Red Hat die Hauptakteure von SELinux sind. Ist doch richtig, daß Du mit RH Enterprise 4 arbeitest?
Auch nicht nach „Aktuelle Seite neu laden“? Wegen dem Cache,
vergisst man ja manchmal…
Ich hab eben nochmal den Cache gelöscht. Leider ohne Wirkung.
IfModule erst hinter dem Directory-Block geschlossen wird,
aber das kann es ja wohl nicht sein:
Hmm vielleicht versuch ich es so nochmal. Aber im Moment hab ich da keine Zeit, da ich schon wieder eine andere Aufgabe bekommen habe.
Bist Du sicher, daß Du SELinux nicht benutzt? In Kernel 2.6.x
ist es ja explizit drin und gerade bei Red Hat Enterprise
Linux 4 würde ich vermuten, daß es dort standardmäßig on ist,
da ja Red Hat die Hauptakteure von SELinux sind. Ist doch
richtig, daß Du mit RH Enterprise 4 arbeitest?
Da bin ich mir ziemlich sicher, dass das ausgeschaltet ist, bzw. bei der Neuinstallation hab ich das gar nicht mehr mit installiert.
Jab das ist richtig, dass hier im Moment RHEL4 nutze.
Hallo,
so das Problem ist gelöst und die UserDirs laufen.
Bist Du sicher, daß Du SELinux nicht benutzt?
Da waren wir uns ziemlich Sicher, Marvin.
Da ich noch Azubi bin und mein Kollege die Paketauswahl für die Installation gemacht hat, hatte er gleich gesagt, dass er SELinux nicht mit Installiert, da es sonst wegen des Indianers zu Problemen kommen kann.
Keine Ahnung warum es doch installiert wurde. Vielleicht irgend welche Abhängigkeiten, oder ähnliches?
Nun ist SELinux aber aus und der Apache rennt.
Also danke für deine, respektive eure Unterstützung.