X11 et sudo
Par Schnouki le lundi 9 avril 2007, 11:46 - Geek inside - Lien permanent
Quand on est fan de sudo, c'est parfois assez pénible de ne pas pouvoir lancer d'application graphique avec. Il existe pourtant une solution simple pour y remédier.
Le problème de sudo est que, dans sa configuration « classique », il ne conserve pas les variables d'environnement nécessaires au bon fonctionnement des applications X11 lors du changement d'utilisateur. Pour y remédier, il y a deux solutions :
- utiliser
sux(disponible dans Portage :x11-misc/sux), un petit programme qui fonctionne commesu, mais en transférant les données nécessaires. Ça marche, mais ça ouvre un shell (ce dont on n'a pas toujours envie) et ça demande toujours un mot de passe root (il n'est évidemment pas possible de l'utiliser avecsudo...). Et il semble poser des problèmes pour afficher les caractères UTF-8, ce qui est plutôt gênant. - bien configurer
sudo: c'est possible, et heureusement pour les fans d'Ubuntu
[1]
On va donc modifier le fichier /etc/sudoers. Évidemment, il n'est pas question de le modifier « à la main » : pour des raisons de sécurité, mieux vaut utiliser visudo.
Une fois l'éditeur de texte lancé, il faut spécifier quelles variables il faut transférer et pour quels utilisateurs. Ces variables, ce sont $DISPLAY et $XAUTHORITY. Pour les utilisateurs, dans mon cas il s'agit du groupe wheel ; certains préféreront spécifier des utilisateurs séparément : c'est leur choix 
Voilà donc les lignes que j'ai dû ajouter à mon fichier sudoers :
# Faire marcher X11 avec sudo Defaults:%wheel env_reset Defaults:%wheel env_keep += DISPLAY Defaults:%wheel env_keep += XAUTHORITY
Chez certaines personnes, il semble qu'il est nécessaire de se déconnecter entièrement (jusqu'à redémarrer le serveur X) pour que la modification prenne effet ; chez moi ce n'a pas été le cas, j'ai juste eu besoin de quitter visudo 
Il suffit ensuite de tester si ça marche, par exemple avec sudo gedit /etc/make.conf.
Un grand merci à Thomas Wisniewski pour l'info.
Déconnecté
Commentaires