J'ai créé un fichier .desktop pour Flashtool d'Androxyde (utilitaire pour les périphériques Sony Xperia que je dois ouvrir avec un fichier exécutable dans son dossier) qui nécessite des privilèges root pour pouvoir utiliser les utilitaires fastboot. J'avais l'habitude de le faire fonctionner avec gksu
, mais je suis sur Ubuntu 15.04 et gksu est maintenant vieux.
J'ai essayé de modifier la ligne exec
de
Exec=gksu /home/natasha/FlashTool/FlashTool
Exec=pkexec /home/natasha/FlashTool/FlashTool
Lien vers l'image complète sur Imgur.com
Le problème est maintenant: il me demande le mot de passe mais l'interface graphique de Flashtool ne démarre pas. MAIS si j'exécute cette commande en terminal, le programme démarre sans problèmes. Que puis-je faire?
Créer un nouveau fichier dans /usr/share/polkit-1/actions/
Sudo nano /usr/share/polkit-1/actions/FlashTool.policy
et ajoutez les lignes ci-dessous:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
"-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
"http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<policyconfig>
<action id="org.freedesktop.policykit.pkexec.run-FlashTool">
<description>Run FlashTool</description>
<message>Authentication is required to run FlashTool</message>
<defaults>
<allow_any>no</allow_any>
<allow_inactive>no</allow_inactive>
<allow_active>auth_admin_keep</allow_active>
</defaults>
<annotate key="org.freedesktop.policykit.exec.path">/home/natasha/FlashTool/FlashTool</annotate>
<annotate key="org.freedesktop.policykit.exec.allow_gui">TRUE</annotate>
</action>
</policyconfig>
Puis créez un nouveau fichier /home/natasha/FlashTool/
nano /home/natasha/FlashTool/flashtool-pkexec
et ajoutez les lignes ci-dessous:
#!/bin/sh
pkexec "/home/natasha/FlashTool/FlashTool" "$@"
Utilisez la ligne ci-dessous pour Exec
dans votre fichier desktop
:
Exec=/home/natasha/FlashTool/flashtool-pkexec
Testé sur mon système Ubuntu 15.04 GNOME avec les fichiers suivants:
$ cat /usr/share/applications/gedit.root.desktop
[Desktop Entry]
Name=Gedit as root
GenericName=Text Editor
X-GNOME-FullName=
Comment=
Exec=gedit-pkexec
Icon=gedit
Terminal=false
Type=Application
Categories=GNOME;System;Filesystem;Settings;
StartupNotify=true
X-Ubuntu-Gettext-Domain=gedit
$ cat /usr/share/polkit-1/actions/gedit.policy
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
"-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
"http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<policyconfig>
<action id="org.freedesktop.policykit.pkexec.run-FlashTool">
<description>Run FlashTool</description>
<message>Authentication is required to run FlashTool</message>
<defaults>
<allow_any>no</allow_any>
<allow_inactive>no</allow_inactive>
<allow_active>auth_admin_keep</allow_active>
</defaults>
<annotate key="org.freedesktop.policykit.exec.path">/usr/bin/gedit</annotate>
<annotate key="org.freedesktop.policykit.exec.allow_gui">TRUE</annotate>
</action>
</policyconfig>
$ cat /usr/bin/gedit-pkexec
#!/bin/sh
pkexec "gedit" "$@"
Sudo -H
suffit pour démarrer une application graphique empêchant toute modification des fichiers de configuration de l'utilisateur dans ~/
, car le répertoire de base de l'environnement en cours est défini sur le répertoire de base de la racine:
Exec=Sudo -H /home/natasha/FlashTool/FlashTool