7 votos

¿Cómo funciona el símbolo de la llave sudo?

Estoy tratando de escribir un script que solicite la contraseña del usuario para algunos sudo -comandos relacionados. Mi objetivo es emular el método por defecto que utiliza OS X para obtener la contraseña del usuario, Password: seguido de un símbolo parecido a una llave, como se ve en la captura de pantalla adjunta:

key symbol

Intenté la respuesta de Cómo obtener una contraseña de un shell script sin hacer eco en Stack Overflow que utiliza read -s pero eso resulta en Password: sin el símbolo de la llave cuando se ejecuta desde un script pero muestra el símbolo cuando se ejecuta desde el propio Terminal. ¿Qué es este símbolo de llave, y puedo encontrarlo en el menú de caracteres?

0 votos

Me aparece el símbolo de la llave al ejecutar read -s en la Terminal, así que asumo que esto es en realidad una característica de bash. Tal vez una mirada en el código fuente ( opensource.apple.com/source/bash/bash-99/bash-3.2/builtins/ ) podría dar más pistas.

0 votos

@patrix Ya veo, ahora lo entiendo. No tenía read -s configurado correctamente en mi script. ¡Gracias por su ayuda!

0 votos

@patrix Por favor, añade una respuesta si no te importa.

8voto

Me aparece el símbolo de la llave al ejecutar read -s en la Terminal.

Como parece que esto funciona igual para read -s en cuanto a sudo Supongo que se trata de una característica de Terminal (mostrar un símbolo de llave cada vez que se solicita una entrada en modo silencioso/oculto).

2voto

yoliho Puntos 340

La respuesta más sencilla es escribir el script sin sudo

y luego decirle al usuario que lo ejecute con sudo, por ejemplo sudo script

el script se ejecutará con privilegios de Root

`esto tiene la ventaja de que el usuario sabe qué pide y dónde se usa la contraseña, si en su scriptpodría estar sacando una copia o dejándola en memoria

1 votos

Gracias por su pronta respuesta. Aunque entiendo que se 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 he sido claro.

1 votos

Usted fue claro pero creo que es una mala idea

1voto

Elias Zamaria Puntos 610

Creo que tiene que ver con que la opción de eco del terminal esté desactivada. He probado a ejecutar stty -echo; cat; stty echo en mi terminal y luego escribir algo, y el símbolo de la llave se mostró. Entonces pulsé Ctrl + D y se fue.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X