Как заставить сценарий удара попросить пароль? [закрытый]

44
задан Cy Rossignol 14 November 2017 в 00:25
поделиться

3 ответа

stty_orig=$(stty -g) # save original terminal setting.
stty -echo           # turn-off echoing.
IFS= read -r passwd  # read the password
stty "$stty_orig"    # restore terminal setting.
52
ответ дан 26 November 2019 в 21:42
поделиться

Эта команда будет считывать переменную pwd со стандартного ввода (с отключенным эхом):

IFS= read -s  -p Password: pwd

Отмена установки IFS позволит использовать начальные и конечные пробелы в паролях (которые могут поддерживаться в некоторых средах, поэтому лучше всего поддержите его во время ввода вашего скрипта учетных данных пользователя)

Для проверки правильности обработки начальных / конечных пробелов вы можете использовать:

echo -n "$pwd" | hexdump -C

Примечание: не используйте с настоящими паролями, так как они выгружаются на консоль!

HT: Рону ДюПлену за дополнительную информацию о снятии с охраны IFS.

77
ответ дан 26 November 2019 в 21:42
поделиться

Если вам нужно получить пароль, чтобы ввести его в качестве параметра в программу, то совет единорога просто отключить эхо будет правильным.
Проверка passwd в скрипте не работает - если пользователь может выполнить bash-скрипт, у него также есть разрешение прочитать его и увидеть passwd.

Если вы хотите разрешить запуск программы только людям с паролем, то безопасным способом будет создание новой учетной записи пользователя, владеющего программой, и скрипт, использующий 'sudo' для запуска программы от имени этого пользователя - он запросит пароль пользователя безопасным способом.

4
ответ дан 26 November 2019 в 21:42
поделиться
Другие вопросы по тегам:

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