Protéger un répertoire par .htaccess et .htpasswd

Il peut être utile de limiter l'accès à un site ou simplement à un sous-répertoire à certains utilisateurs à l'aide d'un couple identifiant/mot de passe. Voici la marche à suivre pour mettre cette authentification en place.

Pour les "experts"

Un fichier .htaccess, placé dans le répertoire que l’on veut protéger :

AuthUserFile /var/www/vhosts/www.domaine.tld/httpdocs/.htpasswd AuthName "Accès reservé" AuthType Basic Require valid-user

Remarque : dans le cas d’un sous-domaine de ouvaton.org, le chemin doit ressembler à ça :

/var/www/vhosts/sousdomaine.ouvaton.org/httpdocs/.htpasswd

Un fichier .htpasswd, placé dans le répertoire de votre choix :

toto:s5eg4uç(d2hr/ titi:MPuYn8B8DjMiE

Pour créer le fichier .htpasswd, vous pouvez utiliser la commande htpasswd, ou utiliser une générateur en ligne : voir ici ou .

Vous pouvez ajouter dans votre fichier .htaccess les lignes suivantes pour empêcher l'affichage du .htpasswd :

<Files *> Deny from all </Files>

C’est tout pour les experts.

Pour les béotiens !

Dans le système d’exploitation Unix/Linux, les fichiers dont le nom commence par un point décimal sont des fichiers cachés, caché ne signifie pas invisible, mais qu’ils n’apparaissent pas dans les commandes les plus fréquentes si leur affichage n’est pas demandé.

Dans le cadre des hébergements sur serveur Apache, il est aisé de soustraire certains répertoires à la curiosité du public. Le fichier .htaccess est un outil pratique pour cette fonctionnalité.
Il faut disposer de 2 répertoires qui seront protégés.

Le 1er répertoire (nommé par exemple "private") contiendra les 2 fichiers :
".htaccess" + ".htpasswd"

Pour les créer, utilisez l’éditeur de texte de base de votre système.

Le fichier .htaccess contient le code suivant :

<Files *> Deny from all </Files>

Ce code protège l’accès au répertoire .private afin d’empêcher la lecture des mots de passe contenus dans le fichier texte .htpasswd.

Le fichier .htpasswd contient lui les logins (nom d’utilisateur ou pseudo) et mots de passe que l’on aura constitués chez Ouvaton ou ailleurs.

Pour faire un mot de passe voir ici ou .

Voici un exemple :

toto: Cx6hjhmmUIPMZ4uc titi: ylTchglgljHcvhrdU

Le 2e répertoire contient :

Les fichiers et/ou répertoires à accès protégé + 1 autre fichier .htaccess différent du précédent. Ce fichier contiendra le code suivant, dans le cadre de l’exemple choisi avec le répertoire .private :

AuthUserFile /var/www/vhosts/www.domaine.tld/httpdocs/private/.htpasswd AuthName "Répertoire à accès réservé" AuthType Basic Require valid-user

  • La première ligne donne l’emplacement du fichier des mots de passe.
  • La seconde est la chaîne de caractères qui apparaîtra dans la boîte de dialogue au moment de la saisie du nom et du mot de passe.
  • La troisième détermine le type d’authentification utilisé, ici l’authentification HTTP standard.
  • Et enfin la quatrième ligne signifie littéralement qu’un utilisateur valide est requis, à savoir un utilisateur pour le nom duquel une ligne existe dans le fichier .htpasswd.

Une variante de la quatrième ligne pourrait être :

require user "pierre" "paul"

pour limiter l’accès aux seuls utilisateurs "pierre" et "paul"


Pour en savoir plus sur les fichiers .htaccess, vous pouvez vous rendre ici http://www.spip-contrib.net/Le-fich...

Le tutoriel depuis apache.org pour les généralités concernant les fichiers ".htaccess" ou bien la page plus spécifique sur l’authentification.