2 votes

Je reçois une erreur 403 Forbidden après avoir accédé à un répertoire protégé par mot de passe.

Je suis en train d'utiliser nginx et quand je protège un répertoire avec un mot de passe et que j'entre les détails de connexion, je reçois une erreur 403 (:O)

        location ~ ^/documents {
        auth\_basic            "Accès restreint.";
#Ancienne ligne.
#       auth\_basic\_user\_file   /private/pass;
#Nouvelle ligne.
       auth\_basic\_user\_file   /var/www/site.com/private/pass;
}

Le fichier pass ressemble à

thisID:thisPass: Commentaire de bienvenue!

Des conseils ?

1voto

Thej Points 655

Bien que cela ne corresponde pas à l'erreur que vous obtenez...

le fichier pass ressemble à

thisID:thisPass: Bonjour commentaire!

Je suppose que le mot de passe est en fait crypté ? Je pense que cela devrait être le cas ; je doute que vous puissiez simplement mettre un mot de passe lisible par l'homme dans ce fichier de mot de passe.

Si nginx attend des mots de passe encodés/cryptés dans ce fichier, alors il ne trouvera jamais de correspondance si le mot de passe stocké est dans un autre format. (Pour trouver une correspondance, il encodera le mot de passe tel qu'il est saisi par l'utilisateur, et comparera cette entrée encodée au mot de passe encodé tel qu'il est connu à partir du fichier.) Et en effet, selon la documentation, Les mots de passe doivent être encodés par la fonction crypt(3). Vous pouvez créer le fichier de mots de passe avec le programme htpasswd d'Apache.

Cela n'explique toujours pas le message d'erreur réel, mais lorsque le fichier de mot de passe contient les mots de passe lisibles par l'homme, cela donnera sûrement une 402 Non autorisé ou un 403 Interdit.

On peut aussi créer un tel mot de passe encodé en ligne, sur divers sites web.

1voto

Regmi Points 513

Ma expérience à lutter avec ce genre de chose est que lorsque l'ordinateur vous dit que le fichier ou le répertoire n'est pas là .... il n'est pas là! :-)

Essayez de chercher le fichier par rapport à la racine du serveur c'est-à-dire

auth_basic_user_file   /private/pass;

0voto

Je suppose que les emplacements/chemins de fichier ne correspondent pas comme prévu. Êtes-vous sûr que la syntaxe est définitivement correcte en ce qui concerne les chemins de fichier?

Aussi, est-ce que le serveur a un accès en lecture au fichier de mot de passe en question?

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X