J'ai différents problèmes avec polkit qui ne fonctionne pas du tout pour les sessions inactives. Parce que je pense qu'ils partagent le même problème, je vais d'abord poster un exemple.
J'ai un nouveau serveur Ubuntu 14.04 avec le paquet lubuntu-desktop et xrdp installé. Lorsque je me connecte avec xrdp, je devrais avoir les restrictions normales car polkit a été défini. J'ai d'abord pensé que je n'avais tout simplement pas assez de permission pour certaines actions. J'ai donc changé certaines configurations selon mes besoins. Voici un exemple: double-cliquer sur un package .deb que je veux installer, le centre logiciel s'ouvre et je clique sur installer là:
org.freedesktop.PolicyKit.Error.Failed: ('system-bus-name', {'name': ': 1.121'}): org.debian.apt.install-file
(Quelque chose comme: vous n'êtes pas autorisé à effectuer cette action. Vous ne possédez pas les bonnes autorisations.)
Avant cela, j'ai configuré polkit pour autoriser cela pour ma session inactive (mais pour ma compréhension, auth_admin serait suffisant cependant). Un pkaction --verbose
extrait:
org.debian.apt.install-file:
description: Install package file
message: To install this package, you need to authenticate.
vendor: Apt Daemon
vendor_url: http://launchpad.net/aptdaemon/
icon: package-x-generic
implicit any: auth_admin
implicit inactive: auth_admin_keep
implicit active: auth_admin_keep
Quoi qu'il en soit, je pense que polkit (agent?) Ne fonctionne pas du tout, car j'obtiens l'erreur suivante juste après la connexion avec xrdp:
GDBus.Error: org.freedesktop.PolicyKit1.Error.Failed: impossible de déterminer l'utilisateur du sujet
Je suppose qu'il ne me trouve pas en tant qu'utilisateur? Comment puis-je vérifier si l'agent policykit s'exécute dans ma session xrdp? Puis-je le démarrer manuellement? Est-ce peut-être un bug?
Edit: Oui, cet utilisateur est dans le groupe admin, cet utilisateur a été créé lors de l'installation d'ubuntu. Il a également des droits Sudo.
Il ne semble pas obtenir le nom d'utilisateur du processus utilisateur, vérifiez vos variables d'environnement. xrdp peut différer de la session régulière:
env | grep -i "user\|logname"
Pour vérifier si l'agent polkit est en cours d'exécution, utilisez terminal et exécutez ceci:
~$ ps aux | grep polkit
root 855 0.0 0.9 281224 7192 ? Sl 06:34 0:00 /usr/lib/policykit-1/polkitd --no-debug
user 2060 0.0 1.5 331764 11604 ? Sl 06:37 0:00 /usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1
user 2419 0.0 0.1 15944 952 pts/12 S+ 06:38 0:00 grep --color=auto polkit
Vous devriez trouver deux processus polkitd
exécutés par root et polkit-*-authentication-agent-1
par le même utilisateur de la session.
Oui, vous pouvez les tartiner manuellement, j'ai un bureau Ubuntu donc ça peut différer. Obtenez où il est:
~$ ls /etc/xdg/autostart/polkit-*
/etc/xdg/autostart/polkit-gnome-authentication-agent-1.desktop
~$ grep -i exec= /etc/xdg/autostart/polkit-gnome-authentication-agent-1.desktop
Exec=/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1
Exécuter:
/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1