Вручную введите пароль в ожидании и используйте его как переменную во время работы скрипта

Todos los métodos para hacer esto no son estándar -, así que tenga cuidado y solo configure las cosas para un solo shell.

En general, existen dos métodos para implementar el comportamiento deseado:

Uso de secuencias de escape

Este método ha sido descrito para bash por el usuario Nick. Depende de las extensiones bash. El estándar solo requiere que PS1esté sujeto a la expansión de parámetros (, que es la expansión variable de shell )y que el shell debería expandir '!' por el número de comando de historial (tenga en cuenta que el estándar no describe "\!" sino un solo signo de exclamación.

Uso de la sustitución de comandos

Los usuarios de ksh suelen utilizar este método, pero no forma parte del estándar de forma intencionada, ya que supone un riesgo para la seguridad. El estándar no requiere que el shell ignore un entorno PS1importado y, por lo tanto, este entorno podría contener comandos de ataque de un malhechor.

Es muy probable que las versiones futuras del estándar estandaricen la sustitución de comandos para PS1, pero luego requerirán que el shell ignore un entorno importado PS1o que active la sustitución de comandos para el shell y configure el comando después de que se haya activado. encendido para poder trabajar.

0
26.04.2019, 11:40
1 ответ

С точки зрения безопасного хранения пароля вы можете использовать opensslдля создания хэша MD5 пароля, а затем сравнивать с ним последующие входные данные. Это похоже на то, как /etc/passwdхранит пароли :

.
openssl passwd -1 -salt j7bJUIHI YOURSECRETPASSWORD

Команда выдаст вам строку, которую вы можете сохранить в сценарии ожидания. Когда пользователь вводит пароль, который вы бы использовали

openssl passwd -1 -salt j7bJUIHI $INPUT

и сравните с сохраненной строкой. Если они совпадают, то $INPUT был правильным паролем. Строка -saltможет быть любой, но она должна быть исправлена ​​между вызовами opensslдля корректного сравнения.

Если вам нужно восстановить исходный пароль, вы не можете использовать этот метод. Взгляните на эту запись для более общего обсуждения этой темы:Скрытие пароля в сценариях оболочки


Извините, читая это во второй раз, я понимаю, что неправильно понял ваш вопрос. Посмотрите ответ здесь :https://stackoverflow.com/questions/681928/how-can-i-make-an-expect-script-prompt-for-a-password. Это похоже на решение, которое вам нужно.

0
28.01.2020, 03:46

Теги

Похожие вопросы