¿Cómo funciona el símbolo de la tecla Sudo?

Estoy tratando de escribir un script que solicite la contraseña de usuario para algunos sudocomandos relacionados. Mi objetivo es emular el método predeterminado que usa OS X para obtener la contraseña del usuario, Password:seguido de un símbolo similar a una llave, como se ve en la captura de pantalla adjunta a continuación:

símbolo de llave

Intenté la respuesta de Cómo obtener una contraseña de un script de shell sin hacer eco en Stack Overflow que usa read -s, pero eso da como resultado que Password:no tenga el símbolo de clave cuando se ejecuta desde un script , pero muestra el símbolo cuando se ejecuta desde la Terminal. ¿Qué es este símbolo de llave? ¿Puedo encontrarlo en el menú Caracteres?

Obtengo el símbolo de la llave cuando ejecuto la read -sTerminal, así que asumo que en realidad es una característica de bash. Tal vez una mirada al código fuente ( opensource.apple.com/source/bash/bash-99/bash-3.2/builtins/… ) podría dar más pistas.
@patrix Ya veo, ahora entiendo. No lo he read -sconfigurado correctamente en mi script. ¡Gracias por tu ayuda!
@patrix Por favor, agregue una respuesta si no le importa.
Controlar. Y probablemente sea incluso una característica de Terminal.

Respuestas (3)

Obtengo el símbolo de la llave cuando ejecuto read -sen Terminal.

Como esto parece funcionar igual read -spara sudo, asumo que esta es una característica de Terminal (para mostrar un símbolo de llave cada vez que se solicita una entrada en modo silencioso/oculto).

La respuesta más simple es simplemente escribir el script sin Sudo.

luego dígale al usuario que lo ejecute con sudo, por ejemplosudo script

el script se ejecutará con privilegios de root

`esto tiene la ventaja de que el usuario sabe lo que pide y donde se usa la contraseña, si en tu script puedes estar sacando una copia o dejándola en memoria

Gracias por su pronta respuesta. Si bien entiendo que puede ejecutar un script en su totalidad como usuario root, me gustaría emular el mecanismo de obtención de contraseña de sudo. Pido disculpas si no estaba claro.
Fuiste claro pero creo que es una mala idea.

Creo que tiene algo que ver con si la opción de eco del terminal está deshabilitada. Intenté ejecutar stty -echo; cat; stty echoen mi terminal y luego escribir algo, y apareció el símbolo de la llave. Luego presioné Ctrl+ Dy desapareció.