13 votos

¿Qué opción debo dar el comando sudo para tener la contraseña preguntó a través de una interfaz gráfica?

Este problema tiene ben molestando por un tiempo ahora.

Cada ahora y entonces, necesito escribir un archivo de script que se debe ejecutar sudo comandos. No necesariamente sabe de antemano que voy a correr como sudo así que estoy seguro de que hay una manera de abrir una bonita interfaz gráfica (como el de aparecer durante la instalación de software), pero ¿cómo ?

El man sudo dice:

-A          Normally, if sudo requires a password, it will read it from the current terminal.  If the -A (askpass) option is specified, a (possibly
            graphical) helper program is executed to read the user's password and output the password to the standard output.  If the SUDO_ASKPASS
            environment variable is set, it specifies the path to the helper program.  Otherwise, the value specified by the askpass option in
            sudoers(5) is used

Así que estoy bastante seguro de que la solución reside en que -A y SUDO_ASKPASS tupla sin embargo, he logrado encontrar lo que a puesto en esas.

20voto

Nate Puntos 220

OS X no tiene una completamente limpio manera de hacer esto, pero hay un par de maneras de fingir. En primer lugar, AppleScript tiene una buena manera de hacer sudo-ish cosas basadas en una gráfica de autenticación, y usted puede utilizar:

osascript -e "do shell script \"stufftorunasroot\" with administrator privileges"

También puede utilizar ese mecanismo para establecer el sudo de marca de hora y, a continuación, utilizar la sudo (dentro de los 5 minutos de tiempo de espera de la ventana) para hacer las cosas:

osascript -e "do shell script \"mkdir -p /var/db/sudo/$USER; touch /var/db/sudo/$USER\" with administrator privileges" && \
    sudo stufftorunasroot

Por último, puede utilizar AppleScript para que solicite una contraseña, a continuación, pasar a sudo:

pw="$(osascript -e 'Tell application "System Events" to display dialog "Password:" default answer "" with hidden answer' -e 'text returned of result' 2>/dev/null)" && /
    echo "$pw" | sudo -S stufftorunasroot

0voto

Rob Hyndman Puntos 599

OS X no viene con un front-end gráfico para sudo, pero usted encontrará cocoasudo o macsudo útil.

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