htaccess
Vous pouvez vous servir d'un fichier .htaccess
pour modifier le comportement du serveur web pour le répertoire dans lequel il se trouve (ainsi que tous ses sous-répertoires).
Protéger un répertoire avec un mot de passe
Il est possible de protéger l'accès à un répertoire Web avec un mot de passe. Prenons un usager <nom-d'usager>
dont le répertoire web est <dossier-web>
et le sous-répertoire à protéger est <sous-dossier>
. Ce répertoire sera autorisé en lecture pour quelqu'un fournissant le nom <identifiant>
et le mot de passe <mdp>
, contenus dans le fichier <.fichier-mdp>
. Voici alors la procédure pour créer ce fichier.
- Se brancher en ssh sur
arcade.iro.umontreal.ca
. - Aller dans son répertoire web (ne pas aller dans le
public_html
: mieux vaut ne pas mettre<.fichier-mdp>
là oùapache
pourrait le montrer à tout le monde). - Utiliser la commande
htpasswd -n <identifiant>
et fournir le<mdp>
deux fois. Cela retourne une ligne<identifiant>:#############
(lehash
de<mdp>
). - Créer le fichier
<.fichier-mdp>
si nécessaire et y ajouter cette ligne (par ex. à l'aide devi
).
Ensuite, on ajoute un fichier .htaccess
contenant les règles d'authentification dans le répertoire à protéger.
- Créer le sous-répertoire
<sous-dossier>
s'il n'existe pas déjà. - Se déplacer dans ce sous-répertoire.
- Créer un fichier
.htaccess
contenant les lignes suivantes :
AuthUserFile /u/<nom-d'usager>/<.fichier-mdp> AuthName <ce-qu'on-veut-voir-apparaître-dans-l'invite-d'authentification> AuthType Basic Require valid-user
Attention: le chemin /u/<nom-d'usager>
du .htaccess
est interprété sur le serveur web et n'a de sens que dans ce contexte. Sur arcade
, vous ne trouverez pas le fichier <.fichier-mdp>
dans /u/<nom-d'usager>/
mais bien dans /home/www-ens/<nom-d'usager>/
.
Note: Ne pas oublier d'ajuster les permissions de lecture de tous les répertoires et fichiers créés.
Exemple :
cd /home/www-ens/alice htpasswd -n bob
On entre deux fois le mot de passe voulu. Le résultat est
bob:nhMKTi4awTWbk
qu'on ajoute au fichier .htpasswd
echo "bob:nhMKTi4awTWbk" >> .htpasswd
On se déplace dans le répertoire à protéger
cd public_html mkdir -p secrets cd secrets vi .htaccess
et on met dans le .htaccess
ces lignes
AuthUserFile /u/alice/.htpasswd AuthName "Zone de secrets" AuthType Basic Require valid-user