Reinhard Schmid: Htaccess findet Htpasswd nicht

Hallo,

jetzt habe ich mir zum testen den Apache Web-Server auf meinem
Rechner installiert und habe jetzt das Problem das htacces nicht funktioniert. Es kommt zwar das Popupfenster das mich nach dem Benutzername und Kennwort fragt aber anscheinend wird die .htpasswd nicht gefunden. Muss ich vielleicht bei Apache in der httpd.conf noch etwas ändern oder kann ich die Standard Einstellungen behalten.
Der Webserver lieg unter:
c:\programme\apache group\apache\

Das Web liegt unter:
c:\programme\apache group\apache\htdocs

und dort habe ich auch die beiden Dateien .htaccess und .htpasswd reingelegt.
Der Inhalt der .htaccess ist:

AuthType Basic
AuthName "Restricted Directory"
AuthUserFile  /htdocs/.htpasswd
require valid-user

Der Inhalt der .htpasswd ist:

username:6Ff5IQPTBWPQc

Vielleicht kann mir hier jemand helfen ich bin nämlich schon am verzweifeln weil ich es einfach nicht hinkriege.

Vielen Dank schon mal,
Schöne Grüße
Reinhard

  1. Hallo Reinhard,

    AuthUserFile  /htdocs/.htpasswd

    Versuch's mal ,wenn du hier den _ganzen_ Pfad eingibst.

    Ich hab zwar bei meinem Winapachen kein htaccess laufen ... (könnte ich mal schaun wie das geht ;), aber online auf dem richtigen Webserver hab ich das glaub mit den _kompletten_ Pfaden.

    MfG
    Götz

  2. hallo reinhard

    ich hatte kürzlich damit zu tun. was ev.das problem sein könnte: die pfadangabe bei AuthUserFile muss absolut sein. d.h. das ganze rootverzeichnis bis zum htacces-file. also nicht wie bei relativen angaben, z.b. /ordner/file (auf webservern brauchst du die info vom webspace-anbieter)

    kann sein das dort das problem liegt. ich hoffe du kriegst es bald hin.

    gruss
    mac

  3. Moin,

    da gibt es hier eine tolle Erklärung auf diesen Seiten ;-)
    Und auch Google liefert zum Thema htacess eine Menge Infos.

    Die Passwordabfrage, so wie sie jetzt da steht kann nicht laufen, da noch etwas fehlt. Wahrscheinlich ist auch, das das Password nicht richtig generiert wird (SALT benutzt?).
    Allerdings gibt es Unterschiede von Linux und Windoof. Das sollte berücksichtigt werden.

    Hunold

  4. Hi,
    habe mal eine .htacess kopiert, wie sie auf einem unserer Webs läuft:

    AuthType Basic
    AuthName admin
    AuthUserFile "hier steht der komplette Pfad bis zur .htpasswd
    <Limit GET POST>
    require valid-user
    order deny,allow
    allow from all
    </Limit>

    c:\programme\apache group\apache\htdocs

    würde mich meinen Vorgängern anschließen und das mal versuchen einzugeben als Pfad zur .htpasswd

    Vielleicht kann mir hier jemand helfen ich bin nämlich schon am verzweifeln weil ich es einfach nicht hinkriege.

    Gib doch mal Bescheid, obs geklappt hat. Würde mich auch sehr interessieren. Ist wohl auch ein nicht so einfaches Kapitel.

    Gruß Ralf

  5. Hallo,

    ich habe jetzt die .htaccess so geändert:

    AuthType Basic
    AuthName admin
    AuthUserFile "c:\programme\apache group\apache\htdocs.htpasswd"
    <Limit GET POST>
    require valid-user
    order deny,allow
    allow from all
    </Limit>

    aber es geht trotzdem nicht.

    In der httpd.conf steht dieser Eintrag:

    Control access to UserDir directories.  The following is an example

    for a site where these directories are restricted to read-only.

    <Directory "C:/Programme/Apache Group/Apache/htdocs">
        AllowOverride FileInfo AuthConfig Limit
        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>

    DirectoryIndex: Name of the file or files to use as a pre-written HTML

    directory index.  Separate multiple entries with spaces.

    <IfModule mod_dir.c>
        DirectoryIndex index.html
    </IfModule>

    AccessFileName: The name of the file to look for in each directory

    for access control information.

    AccessFileName .htaccess

    Ist das alles richtig?? oder könnte das Problem auch hier liegen??

    Schöne Grüße
    Reinhard

    1. Hi,
      da kann ich auch nur noch raten:

      AuthUserFile "c:\programme\apache group\apache\htdocs.htpasswd"

      In der httpd.conf ist aber angegeben:
      C:/Programme/Apache Group/Apache/htdocs
      Versuche das mal genauso einzugeben. Ich weiß zwar nicht genau ob die ganze Geschichte Case-Sensitive ist, kann aber ja durchaus sein.

      Außerdem würde ich mal das leerzeichen aus apache group rausnehmen und in apachegroup ändern.

      Hoffe das hilft weiter
      Gruß Ralf

      1. Hallo,

        jetzt gehts :-)))

        Nachdem ich dank Euerer Hilfe den richtigen Pad gefunden und eingetragen habe ging es noch nicht, dann habe ich aber in der Log Datei gesehen das die .htpasswd zwar gefunden wird aber das Passwort nicht erkannt wurde. Ich habe das Passwort mit verschiedenen Generatoren vom Internet generiert aber anscheinend funktionieren solche Passwörter nur auf Unix (Ich habe hier W2K). Dann habe ich entdeckt das es bei Apache auch eine Htpasswd.exe gibt mit der man sich seine User und Passwörter erzeugen kann uns schon funktioniert alles.
        Sooooo einfach und trotzdem stundenlang gesucht.

        Vielen Dank nochmal für die Antworten, diese Forum hier ist wirklich spitze,

        Gruß
        Reinhard

        1. jetzt gehts :-)))

          Hi,
          das ist ja schön. Ich habe mal unter meinem Windows Apache geguckt und da habe ich auch eine htpasswd.exe gefunden. Allerdings passiert da bei mir nix, wenn ich doppelt klicke. Unter Linux kommen abfragen nach benutzernamen und paßwort, aber unter win kommen diese Abfragen nicht. Wie machst du das denn bei dir? Übrigens: Funktioniert das Paßwort jetzt auch unter Linux?

          Gruß Ralf

          1. Hi,
            das ist ja schön. Ich habe mal unter meinem Windows Apache geguckt und da habe ich auch eine htpasswd.exe gefunden. Allerdings passiert da bei mir nix, wenn ich doppelt klicke.

            Alter Mäuseschieber!!! Soweit Apache unter Windows auch gekommen sein mag: Das Programm ist wie folgt zu verwenden: DOS Box öffnen (und wenn du dafür unter ausführen "Command" eingibst.

            Oder gleich bei ausführen htpasswd mit entsprechender Option benutzen...

            Usage:
                    htpasswd [-cmdps] passwordfile username
                    htpasswd -b[cmdps] passwordfile username password

            htpasswd -n[mdps] username
                    htpasswd -nb[mdps] username password
             -c  Create a new file.
             -n  Don't update file; display results on stdout.
             -m  Force MD5 encryption of the password (default).
             -d  Force CRYPT encryption of the password.
             -p  Do not encrypt the password (plaintext).
             -s  Force SHA encryption of the password.
             -b  Use the password from the command line rather than prompting for it.
            On Windows, TPF and NetWare systems the '-m' flag is used by default.
            On all other systems, the '-p' flag will probably not work.

            Nun noch die Erklärung, warum das mit dem Paßwort nicht so funktioniert.

            Die Generatoren für Passwörter unter Linux benutzen meistens die crypt() funktion, die unter Linux vorhanden ist. Das Ergebnis ist aber 1. nicht mehr so schwer zu knacken, denn diese form der verschlüsselung ist schon etwas älter, und 2. gibt es unter Windows kein crypt(). Also hat man sich hier für MD5 zur verschlüsselung entschieden... Neuere Apache Versionen unterstützen dies inzwischen wohl auch unter Linux (will ich mal so unterstellen: hab ich nie getestet)... die crypt geschichte gibt es aber noch weiterhin.

            Was passiert jetzt bei der Passworteingabe?
            Passwort wird einegeben und an den Server übertragen (Wahrscheinlich geschieht dies noch als Klartext. Noch etwas wo ich mir nicht sicher bin. Ist aber hierfür nicht wichtig) Dort wird das dann (spätestens) verschlüsselt und mit dem in der Passwortdatei gespeicherten Zeichenkette verglichen. (na was gemerkt? Das gespeicherte Passwort wird nicht entschlüsselt, was auch nicht gehen sollte). Wurde nun das Passwort in der Datei mit crypt verschlüsselt und der Webserver vergleicht das eingehende Passwort damit, nachdem er es per MD5 verschlüsselt hat, kommt er natürlich zu dem Schluß: "Das Teil paßt nicht zusammen! Also Access denied!".

            1. Alter Mäuseschieber!!!

              Hiho,
              was zur Hölle ist denn ein Mäuseschieber!? Da hab ich ja mein Lebtag noch nicht von gehört ;o).

              Ich habe den Apache auf dem Notebook unter Windows laufen, nutze den aber nur für PHP zu Hause.
              Im Büro steht ein Uralt Rechner, auf dem Suse läuft. Da ist es über die Shell ja gänzlich unproblematisch, eine Paßwortfile zu erzeugen.

              Ich habe schon öfter gehört, dass man möglichst systemnah entwickeln soll, d.h. wenn das Web auf einem Apache - Server publiziert wird, sollte es eben auch auf einen Apache entwickelt werden und wenn es auf einem Nt-Server oder sonstwo laufen soll, denn sollte die Entwicklung eben auch auf einem solchen Server erfolgen.

              Wahrscheinlich ist das ja wohl aus eben den von dir genannten Gründen sinnvoll.

              Dank für die ausführliche Erklärung

              Gruß Ralf

            2. Was passiert jetzt bei der Passworteingabe?
              Passwort wird einegeben und an den Server übertragen (Wahrscheinlich
              geschieht dies noch als Klartext. Noch etwas wo ich mir nicht sicher bin.

              http://httpd.apache.org/docs/mod/mod_digest.html

              Dort wird das dann (spätestens) verschlüsselt und mit dem in der
              Passwortdatei gespeicherten Zeichenkette verglichen.
              (na was gemerkt? Das gespeicherte Passwort wird nicht entschlüsselt,
              was auch nicht gehen sollte).

              </selfaktuell/artikel/schroepl02.htm#a4>