Apache htpasswd changement de mot de passe sécurisé
Ma question est simple.
Comment permettre aux utilisateurs de changer leurs mots de passe stockés dans un fichier htpasswd sous linux sans en révéler le contenu des fichiers ou autoriser les utilisateurs à modifier les autres mots de passe?
J'ai essayé d'écrire un script pour faire ce travail à l'aide de ssh et spécialement conçu utilisateur, mais cela entraîne des noway.
S'il vous plaît aider.
Je suis à l'aide d'un serveur Debian "Lenny".
Êtes-vous sûr de vouloir s'en tenir à htpasswd? mod_auth dans Apache peut utiliser d'autres serveurs, base de données LDAP (mod_authnz_ldap), base de données SQL (mod_authn_dbd), etc.
OriginalL'auteur Rusty Horse | 2011-01-19
Vous devez vous connecter pour publier un commentaire.
Apache
htpasswd
fichier ne prend pas en charge toute ombre de la fonctionnalité. À cet effet, vous devez empêcher les utilisateurs d'accéder à votre serveur web afin de les éloigner du fichier de mot de passe. Donc, la seule solution est de votre SSH en fonction de l'approche ou de toute autre solution distante. La description qui suit va vous expliquer comment écrire une commande SSH script pour modifier le mot de passe uniquement si l'utilisateur connaît son ancien mot de passe. Le problème majeur est que Apache ne fournissent pas un outil de ligne de commande pour vérifier un mot de passe dans unhtpasswd
fichier. Mais cela peut être fait à la main.La description suivante suppose que l'utilisateur du serveur web est
www-data
et que le répertoire home de l'utilisateur est/var/www
.Vous devez d'abord créer un fichier htpasswd, qui est accessible en écriture par le serveur web de l'utilisateur:
Ensuite, vous devez ajouter les clés de tous vos utilisateurs à la
authorized_keys
fichier de l'utilisateur du serveur web. Vous devez préfixer chaque ligne avec lacommand
option.Chaque fois qu'un utilisateur se connecte avec sa clé seulement la
.htpasswd.sh
est exécuté. Les utilisateurs n'ont pas tous accès shell sur le serveur web.C'est le script pour modifier le mot de passe:
La partie la plus délicate est la vérification du mot de passe. Il est fait par la lecture de l'ancien sel et le cryptage de l'ancien mot de passe avec l'ancienne sel. Le résultat est comparé avec l'ancien mot de passe crypté dans la
htpasswd
fichier.Désormais, l'utilisateur peut se connecter au serveur web dans le but de changer le mot de passe:
Tout le monde peut uniquement changer son propre mot de passe et personne n'a accès à la crypté le mot de passe des autres utilisateurs. Cette solution a un avantage supplémentaire sur l'utilisation de l'original
htpasswd
programme dans un script shell, car les mots de passe ne sont jamais utilisés comme argument de ligne de commande. Ce ne serait pas possible avechtpasswd
, car il ne peut pas lire le mot de passe à partir de stdin commemkpasswd
.OriginalL'auteur ceving