J'ai créé une icône de bureau pour gddccontrol, mais pour l'exécuter, je dois l'exécuter à partir de Sudo. Est-il possible d’exécuter une commande à partir de l’icône du bureau telle que,
Sudo -pPASSWORD gddccontrol
donc il ne me demandera pas le mot de passe dans le terminal?
Je veux juste cliquer et l'exécuter avec les autorisations Sudo.
[Desktop Entry]
Type=Application
Name=GDDCControl
Terminal=false
Comment=gddccontrol ddccontrol
Exec=Sudo -pPASSWORD gddccontrol
Icon=~/Pictures/10429.png
Lorsque j'exécute l'icône depuis le terminal avec la commande Exec suivante, cela fonctionne bien, mais cela ne fonctionne pas dans Launcher :(
Exec=echo mypasswd | Sudo -S gddccontrol
JAMAIS n'utilisez JAMAIS votre mot de passe, stocké dans un fichier .desktop
. C'est terriblement dangereux.
De plus, vous ne pouvez pas exécuter des commandes compliquées dans un fichier .desktop
, mais c'est un autre sujet.
Vous avez quelques options:
Ajoutez gddccontrol
au fichier sudoers
, comme expliqué par exemple. ici . Cela peut être fait si vous êtes sûr que l'application ne peut pas être utilisée pour faire des choses malveillantes.
Puis utiliser
Exec=Sudo gddccontrol
dans la Exec=
- line
Une autre option consiste à remplacer la ligne Exec=
par:
Exec=gksu gddccontrol
Dans ce cas, une fois que vous avez cliqué sur l’icône, vous serez invité à saisir votre mot de passe via gui.
Vous devrez éventuellement installer gksu
:
Sudo apt-get install gksu
Utiliser Sudo
provoquera par définition une demande de mot de passe. Ce que vous devez faire est d’accorder des autorisations d’exécution à votre utilisateur. Je ne suis pas sûr de l'endroit où se trouve ce programme, mais dans l'intérêt de cette réponse, supposons qu'il s'agisse de /usr/bin/
.
Dans un terminal, exécutez ceci:
Sudo chmod o+x /usr/bin/gddccontrol
Cette commande accorde à o autres utilisateurs (comme vous) le droit de e x exécuter le programme sans nécessiter d’autorisation.
Ensuite, dans le fichier .desktop, utilisez simplement:
Exec=gddccontrol
Je suis contre le mot de passe codé en dur dans un fichier texte brut afin que je puisse penser à deux solutions possibles:
indiquez à l’ensemble du système que chaque commande émise par votre utilisateur avec Sudo est exécutée en tant que superutilisateur sans demander de mot de passe. Vous pouvez trouver comment dans cette réponse
Si vous ne souhaitez pas que les commandes Sudo
soient toujours exécutées avec invite de mot de passe, nous vous recommandons d'utiliser gksu
avant votre commande Inviter à entrer le mot de passe dans une fenêtre graphique plutôt que d'écrire votre mot de passe brut dans un fichier.