Puede solicitar la contraseña mediante el indicador de GUI con la ayuda de -A, --askpass
.
Desde la página del manual:
-A, --askpass
Normally, if sudo requires a password, it will read it from the user's 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, if sudo.conf(5) contains a line
specifying the askpass program, that value will be used. For example:
# Path to askpass helper program
Path askpass /usr/X11R6/bin/ssh-askpass
If no askpass program is available, sudo will exit with an error.
Por lo tanto, puede hacer un programa de ayuda gráfica como el ssh-askpass
que solicita a un usuario una frase de contraseña usando GNOME:
$ which ssh-askpass
/usr/bin/ssh-askpass
Entonces, agregue la siguiente línea a /etc/sudo.conf
:
# Path to askpass helper program
Path askpass /usr/bin/ssh-askpass
Y encontrará el mensaje de contraseña de la GUI:
También puedes usar otro programa como zenity
ese. Ejemplo que uso a continuación:
$ cat /etc/sudo.conf
# Path to askpass helper program
Path askpass /usr/local/bin/zenity_passphrase
¿Dónde zenity_passphrase
se configura un script personalizado para usarlo directamente como comando?
$ cat $(which zenity_passphrase)
#!/bin/bash
zenity --password --title="sudo password prompt" --timeout=10
Que funciona como:
Nota:
También puede usar gksudo
(interfaz GTK + para su y sudo) en lugar de sudo
en el script que pregunta con el indicador de GUI:
También puede usar pkexec
( aplicación polkit ) con algunas aplicaciones / comandos (para otros debe configurarse):
pkexec leafpad
, se daCannot open display:
después de ingresar la contraseña. ¿Se necesita alguna configuración adicional?