[KDE5] Créer une action pour ouvrir Dolphin en Root
Table des matières
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.
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 :
Une fois enregistré, on ferme toutes les instances de Dolphin, on le rouvre et on teste :
Une fois le mot de passe saisi Dolphin est ouvert en root :
Attention : Toute mauvaise manip peut être fatale !!
Attention : Tout fichier ouvert est ouvert avec les droits root !
Certains utilisateurs m'ont remonté que cela ne fonctionnait pas.
Si on lance la commande pkexec dans la console, on a cette erreur :
Il faut simplement lancer dolphin avec la commande dbus-launch pour créer une session dbus au lancement de la commande.
Donc changer
en
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)
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 :
Une fois le mot de passe saisi Dolphin est ouvert en root :
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)