web-dev-qa-db-fra.com

Comment utiliser l'affichage (par exemple un navigateur) lorsque Sudo-ed en root ou un autre utilisateur

Quand je Sudo (ou gksu) en root ou un autre utilisateur (comme je le fais parfois avec Sudo -i) je ne peux pas utiliser l'affichage.

Je connais les risques en tant que root, et c'est généralement lorsque je veux faire quelque chose en tant qu'autre utilisateur brièvement sans fermer toutes les fenêtres de mon compte habituel. Avec trois moniteurs connectés et 4 espaces de travail, cela peut être beaucoup de fenêtres.

Quand je l'essaye, je reçois quelque chose comme

green@camelot-x:~$ firefox
No protocol specified
Failed to connect to Mir: Failed to connect to server socket: No such file or directory
Unable to init server: Could not connect: Connection refused
Error: cannot open display: :0.0

Je ne comprends pas vraiment la plupart de cette sortie d'erreur (je ne reconnais même pas le nom "Mir" - à part une station spatiale russe défunte nommée "paix"), et je n'ai sûrement aucune idée de comment le faire fonctionner.

1
4dummies

Il me semble que, pour des raisons de sécurité, l'utilisateur X ne sera pas en mesure d'afficher directement les fenêtres sur l'écran de l'utilisateur Y. Vous pouvez contourner ce problème en vous connectant à votre propre ordinateur avec le transfert x, en tant qu'autre utilisateur et en exécutant ce programme. .

Installez sshd sur votre ordinateur:

Sudo apt install openssh-server

X11Forwarding yes doit être spécifié dans/etc/ssh/sshd_config

Puis depuis un terminal:

ssh -X green@localhost

Exécutez ensuite Firefox. Il s'affichera dans votre session actuelle mais sera exécuté en tant qu'utilisateur que vous utilisez.

1
Joshua Besneatte