web-dev-qa-db-fra.com

Comment voir ce que pkaction utilise un logiciel

J'ai donc un logiciel qui demande toujours un mot de passe lors du démarrage. Et je veux exécuter ce logiciel sans cette gksu mot de passe Invite à apparaître à chaque fois.

La première chose que j'ai essayée a été d'ajouter son chemin aux sudoers. Cependant, cela n'a pas fonctionné. Plus tard, j'ai découvert qu'il existait un élément appelé policykit, et si un programme souhaite utiliser certaines actions de policykit, il demandera toujours à l'utilisateur de saisir un mot de passe (les utilisateurs sudoers n'ont aucun effet sur celui-ci).

J'ai suivi un guide dans Comment puis-je empêcher PolicyKit de demander un mot de passe? , mais cela ne fonctionne toujours pas, alors je pense que j'ai peut-être ajouté une action incorrecte.

Question: Comment puis-je voir ce que pkaction mon programme utilise-t-il pour que je puisse le saisir dans mon fichier .pkla?

4
PKM

Ask Ubuntu a cette réponse ( Comment configurer pkexec pour ne pas demander de mot de passe? ), ce qui est plus proche de ce dont vous avez besoin que le lien que vous avez trouvé précédemment.

Comme exemple rapide pour trouver l'application, je vais illustrer l'utilisation de mon propre script. Je voulais remplacer gksu qui est obsolète par pkexec et j’ai donc écrit un script de wrapper appelé gsu .

J'appelle gsu à partir de la ligne de commande avec:

gsu pkexec

Notez la flèche déroulante Détails . Cliquez dessus et ceci est révélé:

gsu pkexec details

Dans mon exemple, le pkla est contrôlé par org.gnome.gedit . Je vais utiliser cela dans l'exemple suivant, que vous remplacerez par le vôtre:

gsu pexec authorities

Si vous souhaitez exécuter l'invite sans mot de passe, vous devez définir les éléments suivants:

  <allow_any>yes</allow_any>
  <allow_inactive>yes</allow_inactive>
  <allow_active>yes</allow_active>

Sur une note personnelle, je n'aime pas trop entrer le mot de passe moi-même à plusieurs reprises, mais je ne changerai pas gedit de ne jamais demander de mot de passe lors de la modification de fichiers racine à l'aide de pkexec. Cependant, j'aimerais qu'il ne demande pas à plusieurs reprises un mot de passe lors de son exécution répétée dans une session donnée. Vous pouvez le faire avec Sudo et vous pouvez prolonger la période de 10 à 120 minutes comme je l’ai fait sur mon système. Je voudrais une fonctionnalité similaire pour les kits de politique.

2
WinEunuuchs2Unix

Il semblerait contre-intuitif de contourner la sécurité d'une autorisation policykit . En l'absence de plus de détails, mon meilleur conseil est ne le faites pas.

Quoi qu'il en soit,

Un mécanisme doit déclarer un ensemble d’actions pour pouvoir utiliser polkit. Les actions correspondent aux opérations que les clients peuvent demander au mécanisme à exécuter et sont définies dans des fichiers qu'il installe dans le répertoire/usr/share/polkit-1/actions.

pkaction --verbose

produira des résultats détaillés concernant toutes les actions du kit de stratégie. Cela sera utile lors de l'examen des fichiers de configuration locaux. Vous pouvez rediriger cette sortie vers un fichier texte pour une révision ultérieure de la manière habituelle >later.review.txt

Ces fichiers de configuration se trouvent dans les répertoires répertoriés lorsque vous exécutez la commande Sudo ls /var/lib/polkit-1/localauthority/

10-vendor.d  20-org.d  30-site.d  50-local.d  90-mandatory.d

Explorez et trouvez le fichier .pkla qui correspond à votre logiciel non identifié . En l'absence de toute information utile, je vais prétendre que c'est le Unity Greeter, par exemple. Nous pouvons revoir les lignes qui commencent par Action= avec la commande Sudo grep "Action=" /var/lib/polkit-1/localauthority/10-vendor.d/unity-greeter.pkla, ce qui entraîne

Action=org.freedesktop.NetworkManager.enable-disable-network;org.freedesktop.NetworkManager.enable-disable-wifi;org.freedesktop.NetworkManager.enable-disable-wwan;org.freedesktop.NetworkManager.enable-disable-wimax;
Action=org.freedesktop.NetworkManager.sleep-wake
Action=org.freedesktop.NetworkManager.wifi.share.protected;org.freedesktop.NetworkManager.wifi.share.open
Action=org.freedesktop.NetworkManager.settings.modify.own;org.freedesktop.NetworkManager.settings.modify.system;org.freedesktop.NetworkManager.settings.modify.hostname
Action=org.freedesktop.NetworkManager.use-user-connections
Action=org.freedesktop.NetworkManager.network-control

Pour plus d'informations, vous pouvez trouver le dernier manuel de référence de polkit ici , ainsi que des informations connexes sur systemd ici

Comme @muru le fait remarquer, il existe également une question-réponse connexe ici

Sources:

https://www.freedesktop.org/software/polkit/docs/latest/polkit.8.html

Comment empêcher PolicyKit de demander un mot de passe?

1
Elder Geek