Vous pouvez demander le mot de passe au moyen de l'invite GUI à l'aide de -A, --askpass
.
Depuis la page de manuel:
-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.
Ainsi, vous pouvez utiliser un programme d'aide graphique tel que celui ssh-askpass
qui invite un utilisateur à saisir une phrase de passe à l' aide de GNOME:
$ which ssh-askpass
/usr/bin/ssh-askpass
Alors, ajoutez la ligne suivante à /etc/sudo.conf
:
# Path to askpass helper program
Path askpass /usr/bin/ssh-askpass
Et vous trouverez une invite de mot de passe GUI:
Vous pouvez également utiliser un autre programme comme zenity
celui-là. Exemple que j'utilise suivant:
$ cat /etc/sudo.conf
# Path to askpass helper program
Path askpass /usr/local/bin/zenity_passphrase
Où se zenity_passphrase
trouve un jeu de scripts personnalisé à utiliser directement comme commande:
$ cat $(which zenity_passphrase)
#!/bin/bash
zenity --password --title="sudo password prompt" --timeout=10
Qui fonctionne comme:
Remarque:
Vous pouvez également utiliser gksudo
(GTK + frontend pour su et sudo) au lieu de sudo
dans le script qui demande avec l'invite GUI:
Vous pouvez également utiliser pkexec
( application polkit ) avec certaines (pour d'autres, il doit être configuré) applications / commandes:
pkexec leafpad
, il donneCannot open display:
après avoir entré le mot de passe. Une configuration supplémentaire est-elle nécessaire?DISPLAY=:0 pkexec leafpad
Cannot open display:
apparaît