Des questions suivantes
nous voyons que gksu ne sera plus supporté à long terme, et il ne sera pas installé par défaut à partir de> = 13.04. Au lieu de cela, nous devrions utiliser pkexec qui fait bien son travail pour les applications non graphiques mais pas pour les applications sur l'interface graphique:
pkexec gedit
lors du remplacement de gksu dans un fichier .desktop
EXEC=pkexec /usr/bin/gedit
ou lorsque j'exécute un script python pour exécuter une application graphique avec des autorisations root, j'obtiens l'erreur suivante:
>>>subprocess.Popen(['pkexec','gedit'])
** (gedit:3203): WARNING **: Could not open X display
Comment devrais-je réécrire mes scripts ou mes fichiers .desktop pour prendre en charge une boîte de dialogue d'authentification et exécuter une application en tant que root si je ne dois pas la faire dépendre de gksu?
sudo
j'ai vues a dit quelque chose sur l'intégration du support de gksu dans sudo. Une autre chose à regarder est cellesudo -A
qui, selon la page de manuel, lance une connexion graphique (éventuellement).Réponses:
Créez d'abord un
.policy
fichier d'action dans/usr/share/polkit-1/actions/
. Il est classique de nommer les fichiers d'actions de manière "hiérarchique fournisseur", tels quecom.ubuntu.pkexec.gparted.policy
ouorg.debian.apt.policy
Collez ensuite le contenu suivant:
Remplacez
[Short/Full Program Name/Path]
par des valeurs appropriées, par exemplegedit
,gedit Text Editor
et/usr/bin/gedit
.<action id>
la valeur n'a pas besoin de correspondre au nom de fichier choisi (et un seul fichier peut contenir plusieurs actions), mais classiquement le nom de fichier est le préfixe de toutes ses actions.Après avoir enregistré le fichier, le programme spécifique s'exécuterait avec X et GUI et autres.
Un autre correctif semble être: Ajoutez la ligne suivante dans /etc/pam.d/polkit-1:
la source
Encore un autre correctif pour les scripts utilisateur: déterminez les variables d'environnement appropriées dans votre script.
Pour ce faire, vous pouvez utiliser un extrait comme le suivant:
(basé sur la
getXuser
fonction ACPI )Si vous trouvez que votre
.desktop
fichier ne fonctionne toujours pas, vous pouvez essayer de l'envelopperpkexec commandline
dans unsh
extrait, par exemple:Le dernier problème est un bug connu, apparemment:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=690339
https://bugzilla.xfce.org/show_bug.cgi?id=9373
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=650038
https://bugzilla.gnome.org/show_bug.cgi?id=686059
la source