Apache 2 Zugriffsproblem [SuSE10.0]

JackBauer24

JackBauer24

Jungspund
Hallo,

habe mittlerweile mein Suse 9.3 platt gemacht und Suse 10 installiert.
Läuft auch soweit ohne Probleme :)

Bis auf folgendes:

Ich habe eine Datensicherung von meinem Indianer von Suse 9. (public_html)
auf das neuinstallierte Suse 10 zurückgespielt.

Wenn ich unter 9.3 mein public Veerzeichnis aufgerufen habe, wurde wenn keine index Datei vorhanden war, der Verzeichnisinhalt aufgelistet.

Jetzt bekomme ich nach: http://localhost/~jackbauer24/

Zugriff verweigert!

Der Zugriff auf das angeforderte Verzeichnis ist nicht möglich. Entweder ist kein Index-Dokument vorhanden oder das Verzeichnis ist zugriffsgeschützt.

Sofern Sie dies für eine Fehlfunktion des Servers halten, informieren Sie bitte den Webmaster hierüber.
Error 403
localhost
Sat Oct 8 19:41:58 2005
Apache/2.0.54 (Linux/SUSE)

Selbst wenn entsprechende Dateien vorhanden sind kommt z.B. nach:
http://localhost/~jackbauer24/mysqldumper/index.php

Zugriff verweigert!

Der Zugriff auf das angeforderte Objekt ist nicht möglich. Entweder kann es vom Server nicht gelesen werden oder es ist zugriffsgeschützt.

Sofern Sie dies für eine Fehlfunktion des Servers halten, informieren Sie bitte den Webmaster hierüber.
Error 403
localhost
Sat Oct 8 19:43:33 2005
Apache/2.0.54 (Linux/SUSE)

ich habe das Apache Module mod_userdir unter Verdacht...

Ich habe die Apache Konfiguration von meinem 9.0 und 9.3 mit 10 verglichen konnte aber keinen Unterschied feststellen.

Was mache ich falsch?

Ausserhalb des public_html verzeichnis werden die Dateien geladen.

Die Seite die unter /srv/www/htdocs/test/phpinfo.php liegt wird ohne
Probleme geladen.

MyPhpAdmin lässt sich auch ohne Probleme starten.

Meine PHP, MSQL Installation scheint also zu funktionieren....

Was hat SuSE hier im Bezug auf das public_html Dir. hier bloss
geändert?

Gruß
jackbauer24
 
schon mal in die /etc/apache2/mod_userdir.conf geguckt :oldman
diese ist für das user-web-directory zuständig!

ausserdem weäre noch interessant was die apache-logfiles bei zugriff sagen.

zur info:
bei meiner apache2 default-installation (auf suse 10) gibt es keine probleme damit. benutze apache2 prefork.
 
Wie oben erwähnt habe ich auch mod_userdir in Verdacht...

/etc/apache2/mod_userdir.conf
#
# UserDir: The name of the directory that is appended onto a user's home
# directory if a ~user request is received.
#

<IfModule mod_userdir.c>
# Note that the name of the user directory ("public_html") cannot easily be
# changed here, since it is a compile time setting. The apache package
# would have to be rebuilt. You could work around by deleting
# /usr/sbin/suexec, but then all scripts from the directories would be
# executed with the UID of the webserver.
#
# To rebuild apache with another setting you need to change the
# %userdir define in the spec file.

# not every user's directory should be visible:
UserDir disabled root

# to enable UserDir only for a certain set of users, use this instead:
#UserDir disabled
#UserDir enabled user1 user2


# the UserDir directive is actually used inside the virtual hosts, to
# have more control
#UserDir public_html

<Directory /home/*/public_html>

AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec

<Limit GET POST OPTIONS PROPFIND>
Order allow,deny
Allow from all
</Limit>

<LimitExcept GET POST OPTIONS PROPFIND>
Order deny,allow
Deny from all
</LimitExcept>

</Directory>

</IfModule>


http://localhost/~jackbauer24/
http://localhost/~jackbauer24/mysqldumper/index.phpslog

/var/log/apache2

Accesslog

127.0.0.1 - - [08/Oct/2005:22:33:10 +0200] "GET /~jackbauer24/ HTTP/1.1" 403 1106 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.12) Gecko/20050920 Firefox/1.0.7 SUSE/1.0.7-0.1"

127.0.0.1 - - [08/Oct/2005:22:37:27 +0200] "GET /~jackbauer24/mysqldumper/index.php HTTP/1.1" 403 1094 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.12) Gecko/20050920 Firefox/1.0.7 SUSE/1.0.7-0.1"

/var/log/apache2

error_log

[Sat Oct 08 22:40:43 2005] [error] [client 127.0.0.1] client denied by server configuration: /home/jackbauer24/public_html/

Und nun?
 
hmmm die mod_userdir.conf sieht gut aus.
trotzdem mal ein:
UserDir enabled jackbauer24
probiert?
 
ja habe ich gemacht und apache neu gestartet...

Aber immer noch gleicher Fehler!

Accesslog

127.0.0.1 - - [08/Oct/2005:22:33:10 +0200] "GET /~jackbauer24/ HTTP/1.1" 403 1106 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.12) Gecko/20050920 Firefox/1.0.7 SUSE/1.0.7-0.1"

Errorlog

[Sat Oct 08 22:40:43 2005] [error] [client 127.0.0.1] client denied by server configuration: /home/jackbauer24/public_html/

client denied by server configuration ?
Wo wird das konfiguriert?
 
hast du sonst an der apache2-config was geändert?
ich hab hier schon die 2'te maschine mit suse10 und apache und bei beiden funtzt es ohne probleme. :think:

sieht der userdir-eintrag im default-server.conf auch so aus:

<IfModule mod_userdir.c>
# Note that the name of the user directory ("public_html") cannot simply be
# changed here, since it is a compile time setting. The apache package
# would have to be rebuilt. You could work around by deleting
# /usr/sbin/suexec, but then all scripts from the directories would be
# executed with the UID of the webserver.
UserDir public_html
# The actual configuration of the directory is in
# /etc/apache2/mod_userdir.conf.
Include /etc/apache2/mod_userdir.conf
# You can, however, change the ~ if you find it awkward, by mapping e.g.
# http://www.example.com/users/karl-heinz/ --> /home/karl-heinz/public_html/
#AliasMatch ^/users/([a-zA-Z0-9-_.]*)/?(.*) /home/$1/public_html/$2
</IfModule>


dumme frage: die rechte für dein public_html directory sind aber schon korrekt?
 
JackBauer24 schrieb:
Ich habe eine Datensicherung von meinem Indianer ...
Anmerkung: apache steht für a patchy weil es eine gepatchte version des alten ncsa-servers ist. (nur so nebenbei ;) )

JackBauer24 schrieb:
Ich habe eine Datensicherung von meinem Indianer von Suse 9. (public_html)
auf das neuinstallierte Suse 10 zurückgespielt.
hast du beim zurückspielen auch auf die datei- und gruppenrechte geachtet. wenn du das als root zurückspielst gehören sie automatisch dem benutzer root und gruppe root. klingt jetzt vielleicht ein bisschen blöd aber frage nur zur sicherheit. :think:
 
Hi dramen,



dramen Anmerkung: apache steht für a patchy weil es eine gepatchte version des alten ncsa-servers ist. (nur so nebenbei ;) )
Das mit der Namensherkunft von Apache weiss ich, ist mir vollkommen klar!

Ich wollte eigentlich nur eine witzige Bemerkung machen :)


hast du beim zurückspielen auch auf die datei- und gruppenrechte geachtet. wenn du das als root zurückspielst gehören sie automatisch dem benutzer root und gruppe root. klingt jetzt vielleicht ein bisschen blöd aber frage nur zur sicherheit. :think:

Auf die Datei und Gruppenrechte habe ich geachtet...
Daran scheint es also nicht zu liegen.

Ich habe das Problem mittlerweile gelöst.
Allerdings kann ich die Ursache hierfür nicht lokalisieren.

Mein Vorgehen ist zur Fehlersuche auch nicht hilfreich...
Ich wusste mir aber nicht mehr anders zu helfen.

Ich habe einfach den Apache + alle Module (PHP4,Perl,usw.) gelöscht.
Danach habe ich unter /etc/apache2 das komplette Verzeichnis mit den Konfig-
Dateien gelöscht.

Daraufhin habe ich den Apache neu installiert. Somit wurden auch die Konfig-Dateien neu angelegt.

Jetzt noch den Server neu gestartet und siehe da es funktioniert !!!!

Ich weiss jetzt bloss nicht warum? Wo lag hier bloss der Fehler?

Gruß
Jackbauer24
 
Zuletzt bearbeitet:
:D das dürfte jetzt nur noch seeehr schwer nachvollziehbar sein.
mit hilfe meiner glaskugel tipp ich auf fehlerhafte config oder mod_userdir ... aber dürfte sich jetzt erledigt haben :headup:
 
Hi, bin durch Google hier her gekommen, aber das interessiert ja nicht LOL,

ich habe nämlich so ziemlich das gleiche Problem, nur mit dem unterschied das ich Linux 10 und apache2 komplett neuinstalliert habe und keine Daten überspielt habe. Also im Prinzip ein nackter apache2 :D.

Wie schon oben beschreiben kann ich weder normale localhost adresse noch http://localhost/test.html oder änliches... kennt vielleicht doch einer eine Lösung?
 
Bitte entschuldingen mich dass Ich English schreiben werde. Vor halben Jahrhundert habe Ich in Deutschland studiert (TH Stuttgart), aber die Sprache, leider, habe ich verlehrt.

I have exactly the same problem with Apache server on my PC with SuSE10 (Pro). It worked fine "out of the box" with SuSE 9.3, but with SuSE 10 when I enter

http://localhost/~myusername

I get the message "Access forbidden", followed by the same text as reported by JackBauer24 (In English, of course, as I live in Australia and the configuration of my SuSE 10 specifies primary language as English).

I tried chmod 777 piblic_html with chmod 777 WWW

(WWW) has my home page copy. It changed nothing - my Apache as "localhost" can not access this directory.

As public_html access is set at compile time, my guess is (and it is only a guess) that it was made inaccessible, perhaps as a over zealous security measure. I have the impression that the correspondents in this discussion have compared configuration files and found them the same as in SuSE9.3.

It is possible to recompile the Apache2 package, but that is IMHO a fairly big job.

Perhaps as a work around one could use the httpd from SuSE 9.3 within SuSE10? It should be a relatively simple task to: Rename SuSE10 Apache executables to, say, <name>_suse10version Copy SuSE 9.3 Apache executables to their location in SuSE 10 directories. That may do the trick.

As I am a really old man (I am 80!), perhaps someone more daring would try it!? Hope this suggestion will be commented on.

Regards, Al.
 
Zuletzt bearbeitet:
Ok es ist zwar nicht genau die Lösung die ihr benötigt aber ein kleiner dirty fix fürs erste dass es wenigstens mal geht .

Mann kann auch einfach das Verzeichnis nochmal mounten sprich :

( Dirty way to fix the problem for the first time, until you can solve the problem in a more correct way : )

mkdir /var/www/~user
mount --bind /home/user/public_html /var/www/~user

Auf die Art und Weise kann man sich bequem ein script schreiben , dass bestimmten Usern ein Public HTML erlaubt und anderen nicht, ohne das Apache Modul zu benötigen .

(This way you can write easylie a short bashscript , in that you can manage which user can have a Pulic HTML folder , and which not , without needing to use the apache modul )
(sorry my english is a little bit in-rusted)

Gruß / Greetings Sono
 
Ok es ist zwar nicht genau die Lösung die ihr benötigt aber ein kleiner dirty fix fürs erste dass es wenigstens mal geht .

sono schrieb:

Mann kann auch einfach das Verzeichnis nochmal mounten sprich :

( Dirty way to fix the problem for the first time, until you can solve the problem in a more correct way : )

mkdir /var/www/~user
mount --bind /home/user/public_html /var/www/~user



Vielen Dank, sono!

Ich moechte gern dass ausprobieren. Aber heut zu Tage (in SuSE 10, aber bereits auch in SuSE 9) die www directory befinded sich in /srv directory. So es scheint es mir dass vieleicht man diese Bindung da stellen solte:

# mkdir /srv/www/~<user_name>
# mount -- bind etc...

Die --bind kommand kenne Ich noch nicht. Obwohl bin ich sehr alt (80 Jahre ist schon sehr alt, neh?), ich habe Linux nur fuer par Jahre probiert. Vielen dank, sono! Dass war wirklich interesante "suggestion".

And now it is my turn to apologize for bad German - when mixed with the "international language - bad English" it becomes a thing of real beauty to behold!

Many thanks again, OldAl
 
Zuletzt bearbeitet:
Hallo!

Ich hatte auch genau dasselbe Problem und bin daher auf dieses Forum gestoßen. Aber mittlerweile habe ich es lösen können, ich vermute die Lösung trifft auch auf alle anderen zu:

In der default-server.conf war die <IfModule mod_userdir.c>-Direktive gar nicht eingebaut. Und deshalb wurde auch die mod-userdir.conf gar nicht geladen. Dann wundert es auch vielleicht nicht, daß das Verzeichnis nicht zu erreichen war.

Also habe ich einfach das Beispiel von damager (#6) in die default-server.conf eingefügt, rcapache2 restart und siehe da: es läuft.

Vielen Dank damager und viel Erfolg weiterhin allen...

Gruß,

Roland
 
Hallo!

Auch ich hatte genau das gleiche Problem. Die Lösung sah bei mir aber anders aus:

In der Datei /etc/apache2/mod_userdir.conf stand folgendes:
<Directory /home/*/public_html>

AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec

<Limit GET POST OPTIONS PROPFIND>
Order allow,deny
Allow from all
</Limit>

<LimitExcept GET POST OPTIONS PROPFIND>
Order deny,allow
Deny from all
</LimitExcept>

</Directory>
---------
Das Problem ist das <LimitExcept>. Dort wird das oben erlaubt gleich wieder verboten. Also habe ich alle vier <LimitExcept> Zeilen auskommentiert (#). Dann liefs. Ich weiss nicht, was der Gedanke hinter diesem Directive ist. Vielleicht gibts da ja noch eine Erklärung??

Vielleicht nützt das jemandem.

Gruss

Roman
 
france1279 schrieb:
In der default-server.conf war die <IfModule mod_userdir.c>-Direktive gar nicht eingebaut. Und deshalb wurde auch die mod-userdir.conf gar nicht geladen. Dann wundert es auch vielleicht nicht, daß das Verzeichnis nicht zu erreichen war.

Also habe ich einfach das Beispiel von damager (#6) in die default-server.conf eingefügt, rcapache2 restart und siehe da: es läuft.

Hatte auch das Problem und das hat bei mirgeholfen:) Danke!!!!

Vei mir lief das ganze ohne Probleme bis ich im Yast von Suse 10 über Netzwerdienste/HTTP-Server diesen gestartet habe (Wollte das mal hierüber ausprobieren und nicht über Konsole oder Runlevel-Editor). Und Siehe da: Ab hier ist das Problem aufgetreten!!!!

Grüße
mango_kid
 
Problem nach Update SuSE 9.3 auf 10.0

Ich hatte das Problem seit dem Update von SuSE Linux 9.3 auf 10.0 auf zwei verschiedenen Rechnern. Vorher lief alles.

In der alles steuernden /etc/apache2/default-server.conf steht bei mir folgendes Include

Include /etc/apache2/conf.d/*.conf

Es wird also alles im Unterverzeichnis conf.d berücksichtigt, aber nichts weiter aus /etc/apache2. Also die Datei mod_userdir.conf verschieben ins Unterverzeichnis conf.d und siehe da: es funktioniert. Jedenfalls bei mir...
 
Ich hatte das gleiche Problem.
Der Fehler liegt in der Konfigurationsdatei /etc/default-server.conf

Dort habe ich folgenden Eintrag hinzugefügt:
Include /etc/apache2/mod_userdir.conf

weil ja in dieser Datei der Zugriff auf die Homeverzeichnisse konfiguriert ist.
Anscheinend hat man bei SuSE vergessen, diese Zeile hinzuzufügen.

Mfg. Ferdinand Gruber
 
gleiches Problem andere Loesung

Hallo,

Hatte auch das gleich Problem, allerdings entstand es erst nach einem apache2 update, mit ner ersten installation von suse 10 lief es gut.

Bei mir wurde in der
Code:
httpd.conf
datei die mod_userdir.conf gar nicht aufgerufen.

Einfach Include
Code:
/etc/apache2/mod_userdir.conf
irgendwo (am besten gabnz zum schluss) hinzufuegen und mit
Code:
rcapache2 restart
gehts ...
 
Early bird

Ich hatte das gleiche Problem.
Der Fehler liegt in der Konfigurationsdatei /etc/default-server.conf

Dort habe ich folgenden Eintrag hinzugefügt:
Include /etc/apache2/mod_userdir.conf

weil ja in dieser Datei der Zugriff auf die Homeverzeichnisse konfiguriert ist.
Anscheinend hat man bei SuSE vergessen, diese Zeile hinzuzufügen.

Herzlichen Dank das hat geholfen. Ich habe mir sofort nach erscheinen der Ausgabe 10.0 die Box gekauft, Das sollte man wahrscheinlich nicht machen da diese Erstauflagen doch einige Bugs enthalten.
Was hat es mich Nerven gekostet mittels Yast eine verschlüsselte Partition zu erstellen. Es wurde zwar das verschlüsselte Loop Device erstellt aber Yast war nicht in der Lage wie versprochen einen entsprechenden Eintrag in der /etc/fstab zu erstellen. Das musste dann von Hand erfolgen.
Die Änderung des Aussehens des KDM über die entsprechende Variable des sysconfig Editors bleibt auch ohne Wirkung. Schön wenn es Foren wie dieses gibt die einem Helfen. Nochmals vielen Dank.
 

Ähnliche Themen

Probleme mit webdav

Apache / Twiki Config

Apache läuft - Aufruf über localhost liefert "access denied"

VHOST Problem, Debian Lenny

Zurück
Oben