GNU/Linux >> Znalost Linux >  >> Linux

Nelze spustit aplikace X11 po „su“ nebo „su -“ jinému uživateli

Abychom získali přístup k X klientským aplikacím, jako je system-config-date, xclock, vncviewer, musíme exportovat nastavení DISPLAY vzdáleného hostitele na místní server. To se běžně provádí pomocí níže uvedených příkazů.

# ssh root@remotehost

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

Kde x.x.x.x:y.y – je nastavení zobrazení systému, ze kterého jste se připojili ke vzdálenému hostiteli.

Můžete také použít volbu -X s ssh k přímému exportu DISPLAY na vzdáleném hostiteli.

# ssh -X root@remotehost

Pokud se však nyní pokusíte přepnout na jiného uživatele na vzdáleném systému a znovu exportovat zobrazení, zobrazí se chyba – „Chyba:Nelze otevřít displej:“.

# 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

Přesměrování X11 pro uživatele sudo

Pouhé nastavení DISPLAY nestačí. Autentizace X je založena na cookies, takže je nutné nastavit cookie používané uživatelem, který inicioval připojení. Následující postup umožňuje uživateli sudo používat tunel X11 založený na ssh:

1. Připojte vzdáleného hostitele pomocí volby -X s ssh.

# ssh -X root@remote-host

2. Nyní vypište sadu cookies pro aktuálního uživatele.

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

3. Přepněte se na jiný uživatelský účet pomocí sudo. Přidejte cookie z výstupu příkazu výše k uživateli sudo.

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

4. Znovu exportujte zobrazení z kroku 2 pro uživatele sudo. Zkuste příkaz xclock k ověření, zda klientské aplikace x fungují podle očekávání.

# export DISPLAY=localhost:10.0
# xclock


Linux
  1. Jak přepnout (su) na jiný uživatelský účet bez hesla

  2. Jak mohu provést řadu příkazů v subshell bash jako jiný uživatel pomocí sudo?

  3. Po instalaci Jenkins nelze odeslat uživateli jenkins

  1. systemd:SIGTERM ihned po startu

  2. Jak mohu změnit všechny soubory patřící jednomu uživateli na jiného uživatele?

  3. Jak mohu spustit příkaz po spuštění?

  1. Jak ssh jako jiný uživatel

  2. Jak mohu zabránit uživateli v kopírování souborů na jiný pevný disk?

  3. Jak mohu povolit jednomu uživateli su druhému, aniž bych povolil přístup root?