1. L'URI admin://
Dans Ubuntu, la manière officielle de modifier les fichiers système en tant que root avec un éditeur graphique est d'utiliser la commande admin://
URI. Par exemple, pour modifier /etc/fstab
Dans la boîte de dialogue d'exécution que vous obtenez après avoir appuyé sur la touche Alt + F2 ou sur le terminal :
gedit admin:///etc/fstab
Dans les anciennes versions d'Ubuntu (antérieures à 20.10), la toute première fois que vous faites cela, vous devez fournir votre mot de passe utilisateur deux fois de suite. Ce problème a été corrigé dans la version 20.10.
Bien entendu, votre utilisateur doit appartenir au groupe root pour pouvoir modifier les fichiers système.
2. Utilisation de sudoedit
Une approche valable pour tout environnement de bureau avec tout éditeur serait d'utiliser sudoedit
. Configurez la variable d'environnement SUDO_EDITOR pour qu'elle pointe vers le binaire de votre éditeur graphique, par exemple : export SUDO_EDITOR="/usr/bin/gedit"
. Ensuite, vous pouvez utiliser la commande sudoedit <file>
o sudo -e <file>
pour ouvrir un fichier système dans votre éditeur graphique. De la même manière que l'URI admin://, cela créera une copie temporaire, que vous pourrez modifier comme un utilisateur normal. Une fois l'éditeur fermé, la copie temporaire modifiée est recopiée sur le fichier système.
On peut en fait les combiner en une seule commande :
env SUDO_EDITOR="/usr/bin/gedit" sudoedit <file>
Ainsi, l'environnement n'est modifié que lorsque vous souhaitez explicitement utiliser l'éditeur graphique. Vous créez un alias ou un petit script pour éditer les fichiers texte du système dans un éditeur graphique avec une seule commande.
3. Découragé : utilisation pkexec
Ces deux options ne permettent à aucun moment d'exécuter votre éditeur graphique en tant que root, ce qui est préférable. Néanmoins, il est possible d'exécuter un éditeur graphique en tant que root en utilisant pkexec
. Vous pouvez installer un fichier PolicyKit mais vous pouvez aussi l'exécuter avec quelques variables d'environnement . Pour nautilus
les utilisateurs, le paquet nautilus-admin
installe un fichier PolicyKit pour gedit et fournit une option de menu par clic droit dans nautilus
pour lancer un fichier texte dans gedit
avec les droits de root. Cependant, ces options, où une application graphique est exécutée en tant que root sont, selon man pkexec
découragé :
Par conséquent, pkexec ne vous permettra pas d'exécuter des applications X11 applications X11 en tant qu'autre utilisateur puisque les variables d'environnement $DISPLAY et ne sont pas définies. Ces deux variables seront conservées si l'option l'annotation org.freedesktop.policykit.exec.allow_gui sur une action est définie à une valeur non vide ; ceci est déconseillé, cependant, et ne devrait être pour les anciens programmes.