Cuando quiero pedir una contraseña en un bash
script, hago eso:
read -s
... pero cuando corro bash
en modo POSIX, con sh
, la -s
opción es rechazada:
$ read -s
sh: 1: read: Illegal option -s
¿Cómo me pregunto segura para una entrada con un comando POSIX?
Respuestas:
Tenga en cuenta que para esas conchas (mksh), donde
printf
no se BuiltIn, la contraseña aparecerá en claro en laps
salida (por unos pocos microsegundos) o puede aparecer en algunos registros de auditoría si se auditan todas las invocaciones de comando con sus parámetros.fuente
cat
+ heredoc ser una alternativa más segura a laprintf
?REPLY="$(...)"
no perjudican (excepto el resaltado de sintaxis SE) pero no son necesariasstty
ajustes.read -s
no está en POSIX. Si desea ser compatible con POSIX, usestty -echo
.stty
y suecho
parámetro se definen en POSIX.Esto funcionará en todos los shells que se ajusten a POSIX.
Fuente
fuente
stty echo
, en caso de que el usuario se confunda y presione Control-C durante laread PASSWORD
sección .