Script htdigest -c / chemin / vers / fichier / $ utilisateur $ utilisateur $ mot de passe dans Bash
8
Je veux pouvoir écrire un script avec un mot de passe dans la variable $ password.
htdigest -c /etc/apache2/pw/$user $user $password
Pour le moment, il me demande de saisir manuellement un mot de passe; cela ne sera pas possible car ce sera une configuration automatisée par un script PHP. Quelqu'un pourrait-il me montrer comment l'écrire? Ou une fonction scriptable équivalente?
J'ai utilisé md5sumde GNU coreutils et awkplutôt que simplement md5parce que c'est ce que j'ai installé sur mon système et je ne pouvais pas être dérangé de savoir quel paquet contient /usr/bin/md5- vous pouvez également utiliser sha512sumou un autre programme de hachage.
Par exemple, si user = foo , realm = bar et password = baz, la commande ci-dessus produira:
foo:bar:5bf2a4095f681d1c674655a55af66c5a
htdigest ne fait rien de magique ni même d'inhabituel - il affiche juste l'utilisateur, le domaine et le mot de passe au bon format ... comme le fait la commande ci-dessus.
Supprimer le résumé pour un utilisateur donné: le domaine au lieu d'en ajouter un, peut facilement être fait avec sed.
sed -i -e "/^$user:$realm:/d" "/etc/apache2/pw/$user"
Et la mise à jour / modification du résumé pour un utilisateur: le domaine peut également être fait avec sed en combinaison avec la méthode ci-dessus pour générer la ligne de résumé. par exemple
Vérifiez la fonction 'proc_open' en PHP http://fr.php.net/manual/en/function.proc-open.php
Vous pouvez exécuter htdigest avec votre option, puis envoyer dans les tuyaux le nouveau mot de passe.
Vous pouvez probablement trouver / créer une fonction PHP qui fait le travail htdigest. Cela devrait être plus facile que d'utiliser proc_open ...
la source