Scripting von htdigest -c / path / to / file / $ user $ user $ password in Bash
8
Ich möchte in der Lage sein, ein Skript mit einem Passwort in der Variablen $ password zu schreiben.
htdigest -c /etc/apache2/pw/$user $user $password
Im Moment werde ich aufgefordert, ein Passwort manuell einzugeben. Dies wird nicht möglich sein, da es sich um eine automatisierte Einrichtung durch ein PHP-Skript handelt. Könnte mir bitte jemand zeigen, wie man das schreibt? Oder eine äquivalente skriptfähige Funktion?
Ich habe md5sumvon GNU Coreutils verwendet und awknicht nur, md5weil es das ist, was ich auf meinem System installiert habe, und ich konnte nicht herausfinden, welches Paket enthält /usr/bin/md5- Sie könnten auch ein sha512sumanderes Hashing-Programm verwenden.
zB wenn user = foo , Realm = bar und password = baz, erzeugt der obige Befehl:
foo:bar:5bf2a4095f681d1c674655a55af66c5a
htdigest macht nichts Magisches oder Ungewöhnliches - es gibt nur den Benutzer, den Bereich und das Passwort im richtigen Format aus ... wie der obige Befehl.
Das Löschen des Digests für einen bestimmten Benutzer: Realm kann einfach mit sed durchgeführt werden, anstatt nur einen hinzuzufügen.
sed -i -e "/^$user:$realm:/d" "/etc/apache2/pw/$user"
Das Aktualisieren / Ändern des Digests für einen Benutzer: Realm kann auch mit sed in Kombination mit der oben beschriebenen Methode durchgeführt werden, um die Digest-Zeile zu generieren. z.B
Sie können htdigest mit Ihrer Option ausführen und dann das neue Passwort in den Pipes senden.
Sie können wahrscheinlich eine PHP-Funktion finden / erstellen, die den höchsten Job erledigt. Es sollte einfacher sein, als proc_open zu verwenden ...
Überprüfen Sie die Funktion 'proc_open' in PHP http://fr.php.net/manual/en/function.proc-open.php
Sie können htdigest mit Ihrer Option ausführen und dann das neue Passwort in den Pipes senden.
Sie können wahrscheinlich eine PHP-Funktion finden / erstellen, die den höchsten Job erledigt. Es sollte einfacher sein, als proc_open zu verwenden ...
quelle