Когда я хочу попросить пароль в bash
скрипте, я делаю это:
read -s
... но когда я работаю bash
в режиме POSIX sh
, -s
опция отклоняется:
$ read -s
sh: 1: read: Illegal option -s
Как безопасно запросить ввод с помощью POSIX-совместимой команды?
Ответы:
Обратите внимание, что для тех оболочек (mksh), которые
printf
не являются встроенными, пароль будет отображаться вps
выходных данных в открытом виде (в течение нескольких микросекунд) или может отображаться в некоторых журналах аудита, если проверяются все вызовы команд с их параметрами.источник
cat
+ heredoc быть более безопасной альтернативойprintf
?REPLY="$(...)"
не наносят вреда (за исключением подсветки синтаксиса SE), но не обязательныstty
настройки.read -s
не в POSIX. Если вы хотите быть POSIX-совместимым, используйтеstty -echo
.stty
и егоecho
параметр определены в POSIX.Это будет работать на всех оболочках, которые соответствуют POSIX.
Источник
источник
stty echo
его - на случай, если пользователь запутается и нажмет control-C во времяread PASSWORD
раздела ,