Я хочу обеспечить выполнение программы с помощью пароля.Как сделать скрипт bash запросить пароль?
Как это сделать в bash?
Я хочу обеспечить выполнение программы с помощью пароля.Как сделать скрипт bash запросить пароль?
Как это сделать в bash?
stty_orig=`stty -g` # save original terminal setting.
stty -echo # turn-off echoing.
read passwd # read the password
stty $stty_orig # restore terminal setting.
Эта команда будет считан в вар PWD из стандартного ввода (с эхо-инвалидов):
IFS= read -s -p Password: pwd
Отключение МФС позволит начальные и конечные пробелы в паролей (которые могут быть поддержаны в некоторых средах , так что лучше всего поддерживать его во время ввода вашего пользователя учетных данных пользователя)
Для проверки правильности пробелов в верхнем/заднем пробеле вы можете использовать:
echo -n "$pwd" | hexdump -C
Примечание: не используйте настоящие пароли, поскольку они сбрасываются на консоль!
HT: Ron DuPlain за эту дополнительную информацию о снятии IFS.
Если вам нужно взять passwd для подачи в качестве параметра для программы, тогда совет единорогов, чтобы просто отключить эхо, хорошо.
Проверка passwd в скрипте не работает - если пользователь может выполнить скрипт bash, у них также есть разрешение на его чтение и просмотр passwd.
Если вы хотите разрешить людям с passwd запускать программу, то безопасный способ - создать новую учетную запись пользователя, которая владеет программой, и иметь скрипт, который использует «sudo» для запуска программы в качестве этого пользователя - он будет предлагать пользователям passwd безопасным способом.
Можно предварительно скомпоновать контрольную сумму пароля и сохранить * it * в скрипте вместо открытого текста и проверить контрольную сумму ввода на это. Однако он все равно может быть сломан, но менее легко. –
В этом случае вы просто просто скопируете скрипт где-нибудь, у вас есть разрешение на запись, и удалите чек. –
Голосование, чтобы закрыть как неясное, укажите, как вы хотите, чтобы ввод пароля отличался от других входов. Нет эхо-ответа по адресу: http://stackoverflow.com/questions/3980668/how-to-get-a-password-from-a-shell-script-without-echoing –