documentation/02.web/14.proteger-un-repertoire-p.../index.md

82 lines
4.1 KiB
Markdown
Raw Normal View History

---
title: "Protéger un répertoire par .htaccess et .htpasswd"
date: "2019-07-08"
categories:
- "sites-web"
---
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.
<!--more-->
# Pour les "experts"
Un fichier .htaccess, placé dans le répertoire que lon 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 dun 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](http://aspirine.org/htpasswd.html) ou [](http://www.infowebmaster.fr/outils/crypter-htpasswd.php).
Vous pouvez ajouter dans votre fichier .htaccess les lignes suivantes pour empêcher l'affichage du .htpasswd :
`<Files *> Deny from all </Files>`
Cest tout pour les experts.
### Pour les béotiens !
Dans le système dexploitation Unix/Linux, les fichiers dont le nom commence par un point décimal sont des fichiers cachés, caché ne signifie pas invisible, mais quils napparaissent pas dans les commandes les plus fréquentes si leur affichage nest pas demandé.
Dans le cadre des hébergements sur serveur [Apache](http://www.apache.org/), 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 laccès au répertoire .private afin dempêcher la lecture des mots de passe contenus dans le fichier texte .htpasswd.
Le fichier .htpasswd contient lui les logins (nom dutilisateur ou pseudo) et mots de passe que lon aura constitués chez Ouvaton ou ailleurs.
Pour faire un mot de passe [voir ici](http://aspirine.org/htpasswd.html) ou [](http://www.infowebmaster.fr/outils/crypter-htpasswd.php).
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 lexemple 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 lemplacement 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 dauthentification utilisé, ici lauthentification HTTP standard.
- Et enfin la quatrième ligne signifie littéralement quun 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 laccè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...](http://www.spip-contrib.net/Le-fichier-htaccess)
Le tutoriel depuis [apache.org](http://httpd.apache.org/docs/2.2/howto/htaccess.html) pour les généralités concernant les fichiers ".htaccess" ou bien la page plus spécifique sur [lauthentification](http://httpd.apache.org/docs/2.2/howto/auth.html).