• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

[Apache]: Problem mit auth

Wikinator

Adams Parmäne
Registriert
21.08.04
Beiträge
1.297
Hallo,

ich versuche ein Unterordner meines Apache (er liegt in /var/www) mit einem Passwort zu schützen. Dazu habe ich in httpd.conf "AuthConfig" eingetragen und /var/www/schutz/.htaccess mit folgendem Inhalt erstellt:
Code:
AuthType Basic
AuthName "STFU"
AuthUserFile /var/passwords/password.file
Require user sebastian

dann mit
Code:
htpasswd -c /var/passwords/password.file sebastian
die Datei erstellt und die Rechte genau wie in /var/www vergeben, sprich:
Code:
-rwxrwxrwx 1 root root 24 Apr 14 20:09 password.file

nun fragt er mich bei dem Aufruf von http://localhost/schutz/ auch nach einem Benutzernamen & Password akzeptiert es allerdings nicht. Rechtschreibfehler ist keiner drin, das habe ich mehrmals überprüft.
 

TakeruKoushirou

Gast
Hoi hoi,

prüfe am besten mal die Apache-Error-Logfile. Da findet sich vielleicht eine Zeile mit Hinweis zu dem Fehler, ob dieser an der .htaccess liegt oder aber eine andere Ursache vorliegt.

`Mika
 

Wikinator

Adams Parmäne
Registriert
21.08.04
Beiträge
1.297
er sagt immer:
Code:
[Fri Apr 14 22:38:41 2006] [error] user sebastian not found: /sebastian

allerdings existiert der Benutzer lokal sowie htpasswd.
 

TakeruKoushirou

Gast
Hm, das ist seltsam.

Ich habe mal, um nichts zu übersehen, Deine Installation getestet, jedoch funktioniert es bei mir.

Das etwas verwirrende "[...]: /sebastian" am Ende der Fehlermeldung folgt vom Syntax dieser, daß der relative Pfad angegeben wird.
Übrig bleibt mir nur eine logische Erklärung, für die Meldung, daß der Benutzer nicht gefunden wird: Der Zugriff auf die Passwortdatei ist fehlgeschlagen.
Mit den eingestellten Rechten jedoch sehr verwunderlich; lege dieser aber versuchsweise mal woanders hin, oder relativ, oder auch mit anderem Namen an. Möglicherweise stört Apache der Punkt im Dateinamen (mal in Anführungszeichen setzen?). Der ist da manchmal etwas (verwirrend) empfindlich; vor allem unter Windows xD.
 

Wikinator

Adams Parmäne
Registriert
21.08.04
Beiträge
1.297
umbenennen ohne Punkt hilft nichts, wenn ich die Datei verschiebe kommt auch dieselbe Fehlermeldung.
/sebastian steht — denke ich — einfach nur für den Aufruf, da ich versuche auf http://localhost/sebastian zuzugreifen.
 

TakeruKoushirou

Gast
Yepp, genau das meinte ich ja dem Fehlermeldungssyntax. Zuerst dachte ich "komische, wieso steht da der Username noch einmal", da Du zuerst einen anderen Pfad hattest. Aber das ist ja soweit klar.

Was Du noch versuchen könntest, wäre die Passwortdatei zu prüfen. Die Daten darin sind Textdaten; kannst also mit jedem Editor (oder direkt per cat in der Konsole) ansehen. Das Format dieser ist einfach: pro Zeile ein Eintrag <username>:<passwort-crypt>. Vielleicht dort verschrieben gehabt? In der .htaccess kannst Du übrigens auch statt einem expliziten User einfach "Require valid-user" eingeben, so daß*jeder User in der Passwortdatei akzeptiert wird.
Sonst schauen was es an Möglichkeiten noch geben könnte, daß der Apache die Passwortdatei nicht lesen kann. Sonst fällt mir gerade nichts ein :(
 

Wikinator

Adams Parmäne
Registriert
21.08.04
Beiträge
1.297
ein cat /var/passwords/passwords ergibt:
Code:
sebastian:AJhEqbz7CCzbE

das Ändern in valid-user ändern leider auch nichts daran :(
 

TakeruKoushirou

Gast
Valid-user war auch nur ein Tipp für später.. hier leider ohne Nutzen :( Hm, bleibt also nur die Möglichkeit zu gucken, ob der Apache vielleicht keinen Zugriff auf die Passwortdatei bekommt. Diese vielleicht mal testweise kurz in den Root legen, dann dem gleichen User wie dem unter den Apache liegt zuweisen, Rechte reichen 0644. Oder prüfen ob nicht irgendwie Der Zugriff des Apache auf bestimmte Unterordner beschränkt wurde (kurz in gleichen Ordner dann wie die Webseite legen, zum Testen).
 

Wikinator

Adams Parmäne
Registriert
21.08.04
Beiträge
1.297
ich bin nicht sicher, ob ich dich ganz richtig verstanden habe:
liegt passwords in /var/passwords — geht es nicht
liegt passwords in /var/www/ und .htacess angepasst — auch nicht
liegt passwords in /var/chroot/apache/var/www oder ../passwords — auch nicht
(ich hatte mal versucht, apache zu chrooten, hat allerdings nicht so ganz geklappt und ich habe es dann auch gelassen.)
 

TakeruKoushirou

Gast
Ein Apache-chroot ist auch eine heikle Sache o_O Den wirklich in eine sichere Sandbox zu setzen ist meist nicht ganz komplikationslos.

Hat die Passwortdatei denn den gleichen Owner wie der User unter dem der Apache läuft? Ggf. noch den Pfad der Passwortdatei in Anführungszeichen packen. Auch wenn das kein Grund sein kann, besser mal testen. Sonst fehlen mir jetzt aber Ideen was noch die Ursache sein könnte.
 

Toddy

Wohlschmecker aus Vierlanden
Registriert
10.05.04
Beiträge
242
Wikinator schrieb:
ein cat /var/passwords/passwords ergibt:
Code:
sebastian:AJhEqbz7CCzbE

Du hast in deiner .htaccess als Passwortdatei allerdings "/var/passwords/password.file" angegeben, und nicht "/var/passwords/passwords".
 

Wikinator

Adams Parmäne
Registriert
21.08.04
Beiträge
1.297
macht leider keinen Unterschied, ob root:root oder www-data:www-data (das ist der Benuter, unter dem Apache läuft) der Besitzer ist. Auch die Anführungszeichen nicht :(
 

Wikinator

Adams Parmäne
Registriert
21.08.04
Beiträge
1.297
Toddy schrieb:
Du hast in deiner .htaccess als Passwortdatei allerdings "/var/passwords/password.file" angegeben, und nicht "/var/passwords/passwords".
mittlerweile aber geändert

TakeruKoushirou schrieb:
Möglicherweise stört Apache der Punkt im Dateinamen (mal in Anführungszeichen setzen?). Der ist da manchmal etwas (verwirrend) empfindlich;

EDIT:
falsches Zitat, sorry.
 

TakeruKoushirou

Gast
Wikinator schrieb:
macht leider keinen Unterschied, ob root:root oder www-data:www-data (das ist der Benuter, unter dem Apache läuft) der Besitzer ist. Auch die Anführungszeichen nicht :(
Okay.. hätte mich eigentlich auch gewundert. Andere Ideen habe ich gerade leider nicht mehr :(
 
  • Like
Reaktionen: Wikinator

Toddy

Wohlschmecker aus Vierlanden
Registriert
10.05.04
Beiträge
242
Wikinator schrieb:
mittlerweile aber geändert

Hast du die Datei nur umbenannt oder ganz neu erstellt?

Wenn du sie nur umbenannt hast wird es auch nicht funktionieren, die Verschlüsselung des Passworts hängt mit dem Dateinamen zusammen...
 
  • Like
Reaktionen: Wikinator

Wikinator

Adams Parmäne
Registriert
21.08.04
Beiträge
1.297
Toddy schrieb:
Hast du die Datei nur umbenannt oder ganz neu erstellt?

Wenn du sie nur umbenannt hast wird es auch nicht funktionieren, die Verschlüsselung des Passworts hängt mit dem Dateinamen zusammen...
nein, hatte ich nicht, macht aber auch keine Unterschied :(
 

Toddy

Wohlschmecker aus Vierlanden
Registriert
10.05.04
Beiträge
242
Wikinator schrieb:
nein, hatte ich nicht, macht aber auch keine Unterschied :(

OK, damit kapituliere ich nun aber auch :-c

Eventuell solltest du dein Problem mal in einem speziellen Apache Forum ansprechen, kann dir außer Experts Exchange aber leider keins empfehlen.

Vielleicht findet sich aber auch hier noch jemand mit der einen oder anderen Idee :)
 

Danyow

Gast
Unabhängig von meinem Lösingsvorschlag, der gleich kommt:
Wikinator schrieb:
Hallo,
dann mit
Code:
htpasswd -c /var/passwords/password.file sebastian
die Datei erstellt und die Rechte genau wie in /var/www vergeben, sprich:
Code:
-rwxrwxrwx 1 root root 24 Apr 14 20:09 password.file

Bist Du Dir WIRKLICH SICHER, daß jeder Benutzer auf diese Datei schreiben darf?
Das würde ich mir nochmal gut überlegen...

Anyways:
Der Apache kann die Autentifizierung nur dann durchführen, wenn er den kompletten Pfad zum Userfile auflösen kann.

Also muß nicht nur /var/passwords/password.file sondern auch /var/passwords/ vom Apache lesbar (und eventuell auch ausführbar) sein.

Vorschlag zur Güte für die Rechtevergabe:
Die Dateien in /var/passwords sollten einer Gruppe gehören, zu der auch der Benutzer unter dem der httpd läuft gehört und von dieser Gruppe lesbar und evtl. ausführbar - aber eben nicht schreibbar - sein.
Das Verzeichnis /var/passwords selber sollte o=rx sein.

Die jeweiligen Dateien in /var/passwords sollten den Usern gehören, die daran etwas verändern können sollen und nur von ihnen schreibbar sein.

HTH

D
 

Wikinator

Adams Parmäne
Registriert
21.08.04
Beiträge
1.297
eigentlich nehme ich auch striktere Rechte, aber da es mit eben diesen nicht funktioniert hat, habe ich sie gelockert.

Das Problem war, dass zusätzlich zu "mod_auth" noch "mod_auth_sys" in /etc/apache/modules.conf geladen wurde. Auskommentiert geht es.
Als Expertenforum habe ich übrigens selfhtml genommen.
 

Danyow

Gast
Wikinator schrieb:
Das Problem war, dass zusätzlich zu "mod_auth" noch "mod_auth_sys" in /etc/apache/modules.conf geladen wurde. Auskommentiert geht es.
Hmm, hast Du Deinen Apache per APT gezogen oder selber gebacken?
Eigentlich ist das eher komisch, daß der in Debian/stable so "verkonfiguriert" ist...
Oder war das auf dem Mac?

D