Pour réduire l’accès à des pages web, il faut mettre un fichier .htaccess
dans le répertoire à protéger.
Ce fichier (ainsi que les autres dont on va parler) doit avoir les droits 644.
Droits d’accès à un répertoire
On y met quelque chose du genre :
# Type d'authentification :
AuthType Basic
# Message d'invite :
AuthName "Zone protégée"
# Chemin absolu vers le fichier contenant utilisateurs et mots de passe
AuthUserFile /home/anne/.htpasswd
# AuthGroupFile /home/anne/.htgroup
# Restriction
# require valid-user
# require group copains-grp
require user anne
Il est recommandé de mettre les fichiers .htpasswd
(et .htgroup
si besoin)
dans un endroit non accessible depuis l’extérieur.
Le fichier .htpasswd
contient des lignes telles que :
<utilisateur> : <mot de passe crypté>
On peut l'éditer à la main, mais on peut aussi le créer en faisant :
$ htpasswd -c /home/anne/.htpasswd -m utilisateur1
Il demande alors le mot de passe et se charge de le crypter.
L’option -c
est pour créer le fichier la première fois.
Par la suite, on fera donc :
$ htpasswd /home/anne/.htpasswd -m utilisateur2
L’option -m
est pour l’encryption MD5.
La même commande sert également à changer le mot de passe d’un utilisateur.
Le fichier de groupes .htgroup
est de la forme :
copains-grp : robert marcel
travail-grp : dupond durand machin
Pour tester, il semble qu’il faille quitter firefox à chaque essai pour vider les mémorisations de mots de passe.
Test
Vérifier que le .htaccess
est bien pris en compte par le serveur en plaçant
un .htaccess
avec :
Deny from all
Si la page reste accessible, c’est qu’il y a un soucis !
AllowOverride
Si les directives du .htaccess
ne sont pas prises en compte,
il faut chercher du côté des propriétés AllowOverride
dans les fichiers de configuration de Apache.
Chez nous, c'était dans les fichiers :
/etc/apache2/sites-available/...
Par exemple, si on a :
AllowOverride None
On ne peut rien changer. On peut le remplacer par :
AllowOverride All
Mais on peut aussi dire plus finement ce qu’on veut autoriser (voir la doc).
Attention : pour que les modifications soient prise en compte, il faut redémarrer le serveur, en faisant par exemple :
sudo apachectl -k restart
Mime-type
Normalement, la détection du type des fichiers est automatique, et les actions effectuées sont liées à cette détection. On peut vouloir forcer le type quand la détection n’est pas correcte, ou quand on veut faire autre chose que ce qui est prévu. J’ai par exemple un répertoire de scripts dans lequel mon fichier .vimrc était considéré comme un fichier binaire, et il fallait donc nécessairement le télécharger pour en voir le contenu, ce qui n'était pas très pratique.
On peut changer soit le type des fichiers portant une certaine extension :
AddType text/plain .sh
soit le type de tous les fichiers d’un répertoire :
ForceType "text/plain ; charset=UTF-8"
Attention, pour que ça fonctionne, il faut que la famille FileInfo
soit dans les AllowOverride
de la configuration (cf. ci-dessus).
Voir aussi :
- rien de plus sur ce sujet... Retournez à l'accueil ?
- Afficher un pourcentage dans une page HTML
- VNC : Virtual Network Computing
- Git : déménagement d'un dépôt
- Quelques liens au sujet de l'analyse statique
- Ocaml: mon principal langage de développement
- Disque dur externe
- Les profiles dans Firefox
- Cryptographie et mail sous Android
- Quelques liens au sujet du C
- Git rebase : pour diviser un commit