Ответ 1
Почему бы просто не использовать:
htpasswd -b -c ~/temp/password admin test101
Я пытаюсь автоматизировать создание пароля из командной строки. Я пробовал ниже, но он все еще спрашивает пароль.
echo "test101" | htpasswd -c ~/temp/password admin
Как сгенерировать автоматизацию htpasswd
из командной строки без ввода пароля?
Почему бы просто не использовать:
htpasswd -b -c ~/temp/password admin test101
Переключатель -b
должен выполнить трюк, но пароль будет отображаться другим пользователям в системе через список процессов (ps
и т.д.):
htpasswd -b -c ~/temp/password admin test101
Если у вас не установлен htpasswd
(например, при использовании nginx), вы можете сгенерировать пароль с помощью openssl.
printf "USER:$(openssl passwd -crypt PASSWORD)\n" >> .htpasswd
Со страницы руководства htpasswd мы получаем это:
-i Считать пароль из stdin без проверки (для использования скрипта).
Так что, согласно вашему вопросу, что-то вроде этого должно работать:
echo "test101" | htpasswd -c -i ~/temp/password admin
Но пароль будет виден в истории и списке процессов.
Чтобы автоматизировать создание пароля из командной строки, я бы записал простой пароль в файл и сделал что-то вроде этого:
htpasswd -c -i ~/temp/password admin < ~/temp/pass_plain
После этого удалите файл pass_plain.
Также убедитесь, что файл pass_plain не доступен для чтения кому-либо еще, даже если он находится там в течение нескольких секунд.