• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

.htaccess tuts nicht bei http://dom.com/~user ?!

kleineso

Newbie
Hallo,


ein User bei mir wollte gern ein geschütztes Verzeichnis in seinem privaten Bereich haben. Leider geht das irgendwie nicht.

Szenario:
Der private Ordner "secure" des Users "lhu" soll durch .htaccess & .htpasswd geschützt werden.

Lösungsansatz:
Mit nem Generator fix beide Dateien erzeugen (http://www.topsubmit.de/dienste/tools...)
Ordner "secure" im priv. Bereich angelegt und Dateien hoch geladen :-/

.htaccess
Code:

AuthUserFile /home/lhu/public_html/secure/.htpasswd
AuthType Basic
AuthName "secure_area"
require valid-user


.htpasswd
Code:

user1:HVmKq4e54SZsM
user2:HVBThuSrU5/BE
user3:HVJpoYEZsT0fU


Geschwind noch 644 gesetzt und eine Runde Schaulauf. Leider ein Satz mit 'x' ... Der Ordner "secure" ist weiterhin normal und ohne Pw.Abfrage erreichbar. --> Eingabe http://dom.com/~user

Dann habe ich das gleiche mit einem virtuellem Host von mir ausprobiert, nat. noch den Pfad in der .htaccess angepasst und so. Da funktioniert es. Der Pfad ist hier allerdings ein ganz anderer! -->
Code:

AuthUserFile /home/obe/apache/cls-crew.com/test/.htpasswd

In der httpd.comf habe ich den Parameter AllowOverride All gesetzt. Allerdings egal welchen Parameter ich jetzt für AllowOverride setze, der Ordner der die .htaccess + .htpasswd enthält, wird nicht mehr angezeigt.
Durch die direkte Eingabe ist er erreichbar und auch wie gewünscht geschützt.

Any hints?


Danke & Gruß, olli
 

PC-Ulf

Member
Code:
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>
muß in der httpd.conf (oder per include) drin stehen. Eine Kontrolle ist es wert. Kann allein stehen und sollte dann auf jeden VirtualHost mit Directory funktionieren.

Hoffe es hilft. :wink:

edit/
mit
Code:
httpd -t
macht man ein Syntax Check bevor man Apache reload / start, mit
Code:
htpasswd2 -m /Pfad/.htpasswd Benutzername
legt man die Benuter in die Datei, mit verschlüsselten Paßwort. Gibt man noch den Paramter -c hinzu, wird die Datei .htpasswd erstellt (und alle anderen Benutzer gelöscht).
 
OP
K

kleineso

Newbie
Hi Ulf,


danke für dein Post. Die Zeilen standen schon drin. Die Ordner werden leider nicht angezeigt, weder in einem virtuellem Host noch in den ~ Userverzeichnissen :-S

Any hints?


Danke, olli
 

nbkr

Guru
Für den Ordner des Users muss noch ein "AllowOverride" gesetzt werden. Damit erlaubst Du dem User die Standardeinstellungen (in dem also kein Passwort) zu überschreiben. Den genauen Wortlaut für den Befehl kenne ich nicht auswendig, aber für die VirtualHosts müsste es schon drin stehen. Einfach die entsprechenden Zeilen kopieren und anpassen.
 

PC-Ulf

Member
Vor dem <Files> habe ich noch ein AccessFileName .htaccess stehen. Wird aber bei Dir dann auch der Fall sein.

Setze mal die Paßwörter mit den Befehl wie ich vorgeschlagen habe, nicht das der andere Server sich an den Paßwörtern des Tools aufhängt (womal Apache selber ein gutes Werkzeug dafür hat).

Dann setze ich immer AuthUserFile die Pfadangabe in Klammern, also "/home/...".

an nbkr: gute Idee Mein Directory lautet so:
Code:
<Directory "/home/htdocs">
  <Files ~ "^\.ht">
    deny from all
  </Files>
  AllowOverride None
  AllowOverride Indexes  AuthConfig Limit  FileInfo
  Options None
  Options +FollowSymLinks +Includes
</Directory>

Schick uns auf jeden Fall die Lösung, nun bin ich neugierig. :wink:
 
OP
K

kleineso

Newbie
Hallo ihrs,


also ich bekomm das nicht gebacken. Hier mal meine Config: http://cls-crew.com/httpd.conf.txt

Aber was ich am meinen dran bin ist klar?!
http://cls-crew.com/test/ --> Dort gibt es noch einen Ordner 'test' welche geschützt ist. Quasi http://....com/test/test - Und dieser wird nicht gelistet.

Oder bin ich total auf dem Holzweg und geschützte Ordner werden einfach 'versteckt'?


Danke & Gruß, olli
 

PC-Ulf

Member
<Directory /home/*/public_html>
#<Files ~ "^\.ht">
AllowOverride All
#Order allow,deny
#Deny from all
#</Files>
</Directory>
Mit # wird es zum Kommentar, entfern mal die # damit Apache dies auch mit konfigurieren kann. Es muß also so heißen:
Code:
<Directory /home/*/public_html>
    <Files ~ "^\.ht">
    AllowOverride All
    Order allow,deny
    Deny from all
    </Files>
</Directory>

Vielleicht reicht es ja. Probier mal aus. :wink:
 
OP
K

kleineso

Newbie
Yo,


das # den Kommentar aufruft ist mir schon bekannt ;)

Nat. habe ich es ohne # auch schon versucht, ohne Erfolg. Ausserdem wird "<Files ~ "^\.ht">" noch an einigen anderen Stellen global aufgerufen (wenn ich das richtig interpretiere).


Danke & Gruß,
olli
 

PC-Ulf

Member
Ich würde die besprochenen Einträge mal nach ganz unten in der httpd.conf kopieren. Anschließend es nach einem neustart des Apache ausprobieren, mit gesetzten Paßwörtern aus Apache.
Mach einfach eine Sicherungskopie (von httpd.conf), dann kann nichts schief gehen.

Sollte es dann nicht funktionieren, werf ich mal einen genaueren Blick mit auf die httpd.conf. Dann müssen sich irgendwelche Einstellungen "beißen", oder ich komme im Moment einfach nicht drauf. Auf jeden Fall verhinderst Du mit den Einträgen ans Ende zu kopieren das irgendwo die Einträge überschrieben werden.

Welche Einstellungen haben wir denn bisher übersehen (bezogen auf die Ausführung .ht Dateien) :?:
 
OP
K

kleineso

Newbie
PC-Ulf schrieb:
...
Welche Einstellungen haben wir denn bisher übersehen (bezogen auf die Ausführung .ht Dateien) :?:

Was meinst du jetzt damit? Wollte nur wissen ob wir vielleicht aneinander vorbei reden - weil ich mein Problem nicht korrekt beschreiben kann

Habs mal am Ende dran gehangen, noch immer nicht der gewünschte Erfolg. Der Ordner _mit_ den .ht* Dateien drin wird _nicht_ angezeigt. Direktes aufrufen via Browser funktioniert.


Viele Grüße, olli
 

PC-Ulf

Member
So, müssen die Situation doch mal klären. Kann sein das ich was mißverstehe.

Problem (wenn ich es richtig verstehe):
  • bei einem Virtualhost wird trotz .hta* und .htp* nicht nach dem Paßwort gefragt.
Anschließend hast Du die gleichen Dateien (nur den Pfad geändert) auf einem anderen Rechner ausprobiert, und dort klappte es.
Oder habe ich es falsch verstanden, und Du hast die Dateien nur in einem anderen VirtualHost auf dem gleichen Rechner getestet, und dort funktioniert es :?:

Der Zugriff der Verzeichnisse geschieht über dem Browser, also mit http://URL/security, und dort wird nicht nach dem Paßwort gefragt.
 
OP
K

kleineso

Newbie
Also, ich hol nochmal aus:

Ich habe _einen_ dedizierten Server. Dort läuft Suse 9.1 und ein Xampp (Apache2) usw.

Zu diesem Server sind 3 Domains verbunden, ausserdem gibt es ein paar User, die ihre Userverzeichnisse nutzen und somit die möglichkeite haben, private Daten im www zu veröffentlichen

Die Domains sind ganz normal erreichbar über http://cls-crew.com
Die Userverzeichnisse erreicht man über http://cls-crew.com/~obe

Im Verzeichnis 'test' des öffentlichen Bereiches von User.obe gibt es einen Ordner 'secure'. In diesem liegen die .ht* Dateien. Die .htp* wurde direkt über die Konsole erstellt und verschlüsselt (also ohne Editor).

Das Problem ist jetzt folgendes:
Rufe ich den öffentlichen Bereich des Users obe auf und gehe in den Ordner 'test' --> http://cls-crew.com/~obe wird mir der Ordner 'secure' nicht mit dem üblichen Directory Listing angezeigt.

Ich als Owner weiss, dass der Ordner da ist und wie er heisst. Um zu testen ob die .ht* Sache funktioniert, gebe ich http://cls-crew.com/~obe/test/secure in die Adressleiste meines Browsers ein - es erscheint eine Passwortabfrage, so wie es sein soll.
Dem Ordner 'secure' habe ich eigens für den Test mit chmod 777 beschwört.

Ich möchte bitte gerne, dass der Ordner, so wie alle nicht geschützten Ordner auch, mit angezeigt wird (klick http://cls-crew.com/~obe ).

Bei Fragen einfach fragen.


Danke & Gruß, olli
 

PC-Ulf

Member
kleineso schrieb:
ein User bei mir wollte gern ein geschütztes Verzeichnis in seinem privaten Bereich haben. Leider geht das irgendwie nicht.
Szenario:
Der private Ordner "secure" des Users "lhu" soll durch .htaccess & .htpasswd geschützt werden.
Also die Paßwort Abfrage funktioniert mittlerweile. Habe das irgendwie verschlafen und war schon sehr verwundert, da ich noch bei dem Problem war. Nach den Einstellungen her muß es auch funktionieren.

Wenn man eine URL aufruft, und keine index- Dateien in der Verzeichnisstruktur liegt, sieht man bei Dir also noch die Verzeichnisstruktur und drinliegenden Dateien.
Das habe ich bei mir aus Sicherheitsgründen deaktiviert. Ich weiß es nicht genau, denke aber auch das Verzeichnisse mit .hta... gegenfalls ausgeblendet werden. Mir ist zumindestens nicht klar was bei der Konfiguration gesetzt werden muß.

Funktioniert es denn bei einem anderen VirtualHost :?: Oder war das auf die Paßwortabfrage noch bezogen :?:
 
Oben