J'ai une application graphique qui doit appeler un démon (écrit en Python) avec des privilèges de superutilisateur. Je voudrais le faire sans demander à l'utilisateur un mot de passe.
Étant donné que le démon est un script, je ne peux pas définir directement le bit SUID. Je pourrais écrire un wrapper C pour cela, mais je préférerais ne pas réinventer la roue, surtout lorsqu'une erreur de ma part pourrait conduire à une sécurité sérieuse du système.
Ce que je ferais normalement dans cette situation est d'ajouter une ligne /etc/sudoers
qui permet aux utilisateurs d'exécuter le démon en tant que root sans mot de passe, en utilisant la directive NOPASSWD. Cela fonctionne très bien à partir de la ligne de commande. Cependant, lorsque je fais cela à partir de l'interface graphique, une pkexec
boîte de dialogue apparaît pour demander le mot de passe de l'utilisateur. Il semble que sur Ubuntu, les appels sudo
depuis l'interface graphique soient en quelque sorte interceptés par pkexec
.
Existe-t-il une solution claire à ce problème? Je préfère vraiment ne pas avoir à gérer les tracas d'un script setuid.
sudo somecommand
, la boîte de dialogue qui s'affiche est une pkexec
boîte de dialogue de mot de passe, qu'il existe ou non une stratégie sudoers permettant l'exécution du programme.