47 votes

Pourquoi gksu/gksudo ou le lancement d'une application graphique avec sudo ne fonctionnent-ils pas avec Wayland ?

J'ai installé Ubuntu 17.10. Maintenant j'ai des problèmes avec gksu :

$ gksu -dg synaptic
No ask_pass set, using default!
xauth: /tmp/libgksu-HgUjgQ/.Xauthority
STARTUP_ID: gksu/synaptic/8760-0-alex-XPS-15-9530_TIME4974977
cmd[0]: /usr/bin/sudo
cmd[1]: -H
cmd[2]: -S
cmd[3]: -p
cmd[4]: GNOME_SUDO_PASS
cmd[5]: -u
cmd[6]: root
cmd[7]: --
cmd[8]: synaptic
buffer: -GNOME_SUDO_PASS-
brute force GNOME_SUDO_PASS ended...
Yeah, we're in...
Unable to init server: Could not connect: Connection refused
(synaptic:8767): Gtk-WARNING **: cannot open display: :1
xauth: /tmp/libgksu-HgUjgQ/.Xauthority
xauth_env: (null)
dir: /tmp/libgksu-HgUjgQ

Si je n'utilise pas -g la boîte de dialogue du mot de passe est désactivée. Il semble donc qu'il y ait un problème avec la création d'un tty pour root.

Un conseil ?

1voto

Knowlengr Points 21

Si une application supporte l'API Wayland, vous pouvez l'exécuter en tant que root en utilisant sudo -EH application commande.

Le commutateur -E indique à sudo de préserver les variables d'environnement (ainsi que WAYLAND_SOCKET et XDG_RUNTIME_DIR) nécessaires aux applications wayland. Il est toujours préférable d'utiliser cette option plutôt que le méchant hack xhost proposé dans d'autres réponses. xhost permet à l'application de s'exécuter sous un wrapper X qui est moins sécurisé que l'utilisation de Wayland (presse-papier partagé, keylogging, etc.). L'astuce sudo -EH ne fonctionnera pas avec une application qui n'a pas été réécrite pour Wayland, comme gparted par exemple, mais fonctionnera avec gedit etc.

0voto

Alex Chapiro Points 471

En fait, le code suivant fonctionne presque :

#! /bin/bash
set -e 
if [ -z "$1" ] ; then
    echo "Application is not specified" ;  exit
fi 
if [ $XDG_SESSION_TYPE = "wayland" ]; then
    if [[ -t 1 ]]; then
       xhost +si:localuser:root
       sudo -u root "$@"
       xhost  -  
       exit 0
    fi 
fi
gksu "$@"

(veuillez m'excuser pour mon style naïf de codage bash) dans ce domaine). T ne fonctionne pas de manière stable à partir de Alt-F2, si la dernière sélection n'était pas un terminal ; dans ce cas, nous ne pouvons pas mettre le focus sur le dialogue de mot de passe. Quoi qu'il en soit< 1. Ce n'est pas une solution à 100%. 2. Il me semble que les architectes d'Ubuntu pensent que nous ne sommes pas censés chercher des solutions de contournement

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X