Interface et Session graphique

[KDE5] Créer une action pour ouvrir Dolphin en Root

Table des matières

Introduction



Récemment, on m'a demandé comment on pouvait ouvrir Dolphin, le gestionnaire de fichiers en tant que root graphiquement.
Cet article décrit comment créer un service pour KDE, pour ouvrir un dossier ave les droits super utilisateur en tant que root.

Créer le service



Dans KDE, pour créer un service pour Dolphin , accessible via le Clic droit, Actions, il est nécessaire de créer un fichier desktop.
Si on veut que le service soit pour l'utilisateur, on le placera dans ~/.local/share/kservices5/ServiceMenus/
Si on veut que le service soit pour tout le monde, on le placera dans /usr/share/kservices5/ServiceMenus/

Dans ce dossier, on va créer un fichier .desktop (par exemple dolphin-root.desktop) en utilisant Polkit :

Code BASH :
[Desktop Entry]
Type=Service
X-KDE-ServiceTypes=KonqPopupMenu/Plugin
MimeType=inode/directory;
Actions=ouvrirDolphinEnRoot;
X-KDE-AuthorizeAction=shell_access
[Desktop Action ouvrirDolphinEnRoot]
Name=Ouvrir Dolphin en root ici
TryExec=pkexec
Exec=pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY dolphin %U
Icon=folder-red


Une fois enregistré, on ferme toutes les instances de Dolphin, on le rouvre et on teste :

kde-dolphin5-ouvrir-en-root



Une fois le mot de passe saisi Dolphin est ouvert en root :

kde-dolphin5-ouvrir-en-root-2



Attention : Toute mauvaise manip peut être fatale !!
Attention : Tout fichier ouvert est ouvert avec les droits root !


Problèmes connus



Certains utilisateurs m'ont remonté que cela ne fonctionnait pas.

Si on lance la commande pkexec dans la console, on a cette erreur :
Code TEXT :
"Session bus not found\nTo circumvent this problem try the following command (with Linux and bash)\nexport $(dbus-launch)"


Il faut simplement lancer dolphin avec la commande dbus-launch pour créer une session dbus au lancement de la commande.
Donc changer
Code BASH :
Exec=pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY dolphin %U

en
Code BASH :
Exec=pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY dbus-launch dolphin %U


Vérifiez que la commande dbus-launch existe (si ce n'est pas le cas, elle fait partie peut être d'un paquet supplémentaire à installé, souvent appelé dbus-x11)
Cette page a été vue 10119 fois