GNU/Linux >> Tutoriels Linux >  >> Linux

Impossible de démarrer les applications X11 après "su" ou "su -" à un autre utilisateur

Pour accéder aux applications client X telles que system-config-date, xclock, vncviewer, nous devons exporter les paramètres DISPLAY d'un hôte distant vers le serveur local. Cela se fait généralement en utilisant les commandes ci-dessous.

# ssh root@remotehost

remotehost# export DISPLAY=x.x.x.x:y.y

Où x.x.x.x:y.y - correspond aux paramètres d'affichage du système à partir duquel vous vous êtes connecté à l'hôte distant.

Vous pouvez également utiliser l'option -X avec ssh pour exporter directement l'AFFICHAGE sur l'hôte distant.

# ssh -X root@remotehost

Mais maintenant, si vous essayez de passer à un autre utilisateur sur le système distant et d'exporter à nouveau l'affichage, vous obtiendrez une erreur - "Erreur :Impossible d'ouvrir l'affichage :".

# ssh -X root@remotehost
# su - [username]
# export DISPLAY=x.x.x.x:y.y 
# xclock
Error: Can't open display: x.x.x.x:y.y

Transfert X11 pour les utilisateurs sudo

Il ne suffit pas de régler DISPLAY. L'authentification X est basée sur les cookies, il est donc nécessaire de définir le cookie utilisé par l'utilisateur qui a initié la connexion. La procédure suivante permet à un utilisateur sudo d'utiliser le tunnel X11 basé sur ssh :

1. Connectez l'hôte distant à l'aide de l'option -X avec ssh.

# ssh -X root@remote-host

2. Répertoriez maintenant le jeu de cookies pour l'utilisateur actuel.

# xauth list $DISPLAY
node01.thegeekdiary.com/unix:10  MIT-MAGIC-COOKIE-1  dacbc5765ec54a1d7115a172147866aa
# echo $DSIPLAY
localhost:10.0

3. Passez à un autre compte d'utilisateur à l'aide de sudo. Ajoutez le cookie de la sortie de commande ci-dessus à l'utilisateur sudo.

# sudo su - [user]
# xauth add node01.thegeekdiary.com/unix:10  MIT-MAGIC-COOKIE-1  dacbc5765ec54a1d7115a172147866aa

4. Exportez à nouveau l'affichage de l'étape 2 pour l'utilisateur sudo. Essayez la commande xclock pour vérifier si les applications client x fonctionnent comme prévu.

# export DISPLAY=localhost:10.0
# xclock


Linux
  1. Impossible de suivre l'utilisateur jenkins après l'installation de Jenkins

  2. Impossible d'ajouter un utilisateur au groupe docker

  3. Comment puis-je créer un utilisateur sans connexion ?

  4. Comment puis-je démarrer automatiquement plusieurs sessions d'écran ?

  5. Impossible de déverrouiller le compte utilisateur Linux

Pouvez-vous développer des applications Linux avec Xamarin ?

Comment puis-je changer tous les fichiers appartenant à un utilisateur à un autre utilisateur ?

Comment puis-je exécuter une commande après le démarrage ?

Comment démarrer un service systemd après la connexion de l'utilisateur et l'arrêter avant la déconnexion de l'utilisateur

Comment puis-je rechercher un nom d'utilisateur par identifiant sous Linux?

Comment puis-je autoriser un utilisateur à su un autre sans autoriser l'accès root?