Можно ли переносить чтение чувствительных данных из командной строки?
Встроенный bash read
имеет флаг -s
это предотвращает повторение всего, что читается из командной строки. После поиска opengroup.org и фильтрации всех других значений read
Я до сих пор не нашел POSIX/ портативный эквивалент. Есть ли разумный способ сделать это?
В bash это достаточно просто:
$ bash -c 'read -sp "What is your password? " password; printf "\n%s\n" "$password"'
What is your password?
I'll never tell!
Но в ш…
$ dash -c 'printf "What is your password? "; read password >/dev/null 2>&1; printf "\n%s\n" "$password"'
What is your password? I'll never tell!
I'll never tell!
1 ответ
Решение
Таким образом, ответ на ваш вопрос, как описано в этой ссылке, вы можете отключить с помощью встроенной команды stty
stty -echo
пс:
не забудьте сохранить свои предыдущие настройки
old_set=$(stty -g)
stty -echo
read -r password
stty "$old_set"