Serveur HTTP Apache Version 2.4
htpasswd
permet de créer et de maintenir les
fichiers textes où sont stockés les noms d'utilisateurs et mots de
passe pour l'authentification de base des utilisateurs HTTP. Si
htpasswd
rencontre un problème d'accès à un fichier,
que ce soit pour écrire dans le fichier de sortie, ou pour lire le
fichier d'entrée dans le but de le mettre à jour, il renvoie un code
d'erreur et n'effectue aucune modification.
Il est possible de limiter l'accès aux ressources du serveur HTTP
Apache aux seuls utilisateurs présents dans les fichiers créés par
htpasswd
. Ce programme ne sait gérer les noms
d'utilisateurs et mots de passe que s'ils sont stockés dans des
fichiers textes. Il peut cependant hacher et afficher les mots de
passe à des fins d'utilisation dans d'autres types de bases de
données. Pour utiliser une base de données DBM, voir le programme
dbmmanage
ou htdbm
.
htpasswd
hache les mots de passe en utilisant bcrypt, une
version de MD5 modifiée pour Apache, SHA-1 ou la routine système
crypt()
. Les hachages de type SHA-2 (SHA-256 and SHA-512) sont
pris en charge pour crypt()
. Les fichiers gérés par
htpasswd
peuvent contenir un mélange de différents types de
codage des mots de passe ; par exemple, certaines entrées utilisateur
pourront comporter des mots de passe hachés avec bcrypt ou MD5, alors que
d’autres dans le même fichier pourront comporter des mots de passe hachés
avec crypt()
.
Cette page de manuel ne décrit que les arguments de la ligne de
commande. Pour plus de détails à propos des directives nécessaires à
la configuration de l'authentification des utilisateurs dans
httpd
, voir le manuel Apache qui est fourni avec
la distribution ou peut être consulté à http://httpd.apache.org/.
httpd
htdbm
htpasswd
[ -c ]
[ -i ]
[ -m |
-B |
-2 |
-5 |
-d |
-s |
-p ]
[ -r rounds ]
[ -C cost ]
[ -D ]
[ -v ] fichier-mots-de-passe nom-utilisateur
htpasswd -b
[ -c ]
[ -m |
-B |
-2 |
-5 |
-d |
-s |
-p ]
[ -r rounds ]
[ -C cost ]
[ -D ]
[ -v ] fichier-mots-de-passe nom-utilisateur
mot-de-passe
htpasswd -n
[ -i ]
[ -m |
-B |
-2 |
-5 |
-d |
-s |
-p ]
[ -r rounds ]
[ -C cost ] nom-utilisateur
htpasswd -nb
[ -m |
-B |
-2 |
-5 |
-d |
-s |
-p ]
[ -r rounds ]
[ -C cost ] nom-utilisateur
mot-de-passe
-b
-i
.
Disponible à partir de la version 2.4.4 du serveur HTTP Apache.-i
-c
-n
.-n
-c
option.-m
-2
crypt()
pour les
mots de passe. Pris en charge sur la plupart des plateformes de style Unix.-5
crypt()
pour les
mots de passe. Pris en charge sur la plupart des plateformes de style Unix.-B
-C
-B
(hachage bcrypt). Il permet de définir la durée
de traitement pour l'algorytme bcrypt (plus elle est longue,
meilleure sera la sécurité, mais inférieure la rapidité). La valeur
par défaut est 5 et les valeurs autorisées vont de 4 à 17.-r
-2
ou -5
. Il permet de définir le nombre de passes
de hachage utilisé pour les algorithmes SHA-2 (un nombre élevé améliore la
sécurité mais le traitement est plus lent ; la valeur par défaut est 5000.-d
crypt()
pour les mots de
passe. Cette option n'est pas supportée par le
serveur httpd
sous Windows ou Netware. Cet
algorithme limite la longueur des mots de passe à 8 caractères ; il
est considéré comme non sur du point de vue des
standards actuels. C'était l'algorithme par défaut jusqu'à la
version 2.2.17.-s
-p
htpasswd
supporte la création des mots de passe en
clair sur toutes les plates-formes, le démon
httpd
n'accepte les mots de passe en clair que
sous Windows et Netware.-D
-v
fichier-mots-de-passe
-c
, le fichier est créé s'il
n'existe pas, ou réécrit et tronqué s'il existe déjà.nom-utilisateur
mot-de-passe
-b
.htpasswd
renvoie 0 ("true") si le nom d'utilisateur
et le mot de passe ont été enregistrés ou mis à jour avec succès
dans le fichier-mots-de-passe. htpasswd
renvoie 1
s'il a rencontré un problème d'accès aux
fichiers, 2
si la ligne de commande comportait une
erreur de syntaxe, 3
si le mot de passe entré
interactivement ne correspondait pas au nom d'utilisateur,
4
si l'opération a été interrompue, 5
si
une valeur était trop longue (nom-utilisateur, nom-fichier,
mot-de-passe, ou l'enregistrement résultant), 6
si le
nom d'utilisateur contenait des caractères illégaux (voir la section
Restrictions), et 7
si le
fichier spécifié n'était pas un fichier de mots de passe
valide.
htpasswd /usr/local/etc/apache/.utilisateurs-htpasswd jsmith
Ajoute ou modifie le mot de passe de l'utilisateur
jsmith
. Le mot de passe est demandé à l'opérateur. Le
mot de passe sera haché en utilisant l'algorithme MD5
modifié pour Apache. Si le fichier spécifié
n'existe pas, htpasswd
renverra un code d'erreur.
htpasswd -c /home/doe/public_html/.htpasswd jane
Crée un nouveau fichier de mots de passe et y enregistre une
entrée pour l'utilisateur jane
. Le mot de passe est
demandé à l'opérateur. Si le fichier existe et ne peut être ni lu ni
écrit, il n'est pas modifié et htpasswd
affichera un
message et renverra un code d'erreur.
htpasswd -db /usr/web/.htpasswd-tous jones Pwd4Steve
Chiffre le mot de passe spécifié dans la ligne de commande
(Pwd4Steve
) en utilisant l'algorithme
crypt()
, et le stocke dans le fichier spécifié.
Les fichiers de mots de passe Web comme ceux que gère
htpasswd
ne doivent pas être situés dans
l'espace d'URI du serveur Web -- en d'autres termes, il ne doit pas
être possible d'y accéder à partir d'un navigateur.
En tant qu'exécutable setuid, ce programme n'est pas sûr, et il ne faut par conséquent pas lui attribuer de permissions setuid.
L'utilisation de l'option -b
est déconseillée, car
avec elle, les mots de passe apparaissent en clair sur la ligne de
commande.
Notez qu'avec l'algorithme crypt()
, seuls les huit
premiers caractères du mot de passe spécifié sont pris en compte. Si
le mot de passe spécifié est plus long, les caractères
supplémentaires sont ignorés.
Le format de hachage SHA-1 n'utilise pas d'amorçage aléatoire
(salting) : à un mot de passe donné correspond une seule
représentation hachée. Les formats crypt()
et MD5
permutent la représentation en la préfixant par une chaîne d'amorce
aléatoire, afin de rendre les attaques de mots de passe à base de
dictionnaires plus difficiles.
Les algorithmes de chiffrement SHA-1 et crypt()
sont considérés comme non surs du point de vue des
standards actuels.
Les formats de crypt()
basés sur SHA-2 (SHA-256 et SHA-512)
sont pris en charge sur la plupart des systèmes de style Unix récents et
respectent la spécification de https://www.akkadia.org/drepper/SHA-crypt.txt.
Sur les plates-formes Windows, la taille des mots de passe
hachés avec htpasswd
est limitée à 255
caractères. Les mots de passe dont la taille est supérieure seront
tronqués.
L'algorithme MD5 utilisé par htpasswd
est spécifique
à Apache ; les mots de passe hachés en utilisant cet algorithme
seront inutilisables sur d'autres serveurs Web.
La taille des noms d'utilisateurs est limitée à 255
octets et ceux-ci ne doivent pas contenir de caractère
:
.
Le coût en performances de la génération de la valeur de hashage d'un mot
de passe bcrypt augmente avec le nombre de passes spécifié par l'option
-C
. A partir de sa version 1.6.0
, la bibliothèque
apr-util
limite le nombre de passes à 17.