C'è un modo, dalla riga di comando, per controllare un utente e una password rispetto a un file creato da htpasswd, lo strumento fornito da Apache?Verifica utente e password su un file creato da htpasswd
12
A
risposta
18
Supponendo che si crea la password utilizzando il seguente comando e "miaPassword" come password
htpasswd -c /usr/local/apache/passwd/passwords username
Questo creerà un file che assomiglia
username:$apr1$sr15veBe$cwxJZHTVLHBkZKUoTHV.k.
Il $ apr1 $ è il metodo di hashing , sr15veBe è il salt, e l'ultima stringa è la password hash. È possibile convalidare utilizzando OpenSSL usando
openssl passwd -apr1 -salt sr15veBe myPassword
che sarà in uscita
$apr1$sr15veBe$cwxJZHTVLHBkZKUoTHV.k.
Una pipeline che si potrebbe usare sarebbe:
username="something"
htpasswd -c /usr/local/apache/passwd/passwords $username
****Enter password:****
salt=$($(cat passwords | cut -d$ -f3)
password=$(openssl passwd -apr1 -salt $salt)
****Enter password:****
grep -q $username:$password passwords
if [ $? -eq 0 ]
then echo "password is valid"
else
echo "password is invalid"
fi
Potrebbe essere necessario cambiare il comando openssl, come Il comando htpasswd di Apache cripta in modo leggermente diverso su ciascun sistema.
Per ulteriori informazioni, visitare la pagina di Apache sul tema a http://httpd.apache.org/docs/2.2/misc/password_encryptions.html
5
È possibile utilizzare lo strumento htpasswd
per questo.
# create htpasswd_file with user:password
$ htpasswd -cb htpasswd_file user password
Adding password for user user
# verify password for user
$ htpasswd -vb htpasswd_file user wrongpassword
password verification failed
$ htpasswd -vb htpasswd_file user password
Password for user user correct.
stato di uscita è 0
per il successo, 3
per il fallimento.
Hmm. C'è un tag [tag: htpasswd] per domande sul programma 'htpasswd', ma il sistema non lo lascerà coesistere con il tag [tag: .htpasswd] ... – Charles