Htaccess

Anne htaccess réseau

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 ?