Parece que sua raiz não possui algum cookie mágico do X11 em seu .Xauthority
, que tem seu standarduser
. Aqui está como corrigir isso.
VERSÃO RESUMIDA (graças a @bmaupin por isso)
standarduser@localhost:~$ xauth list | grep unix'echo $DISPLAY | cut -c10-12' > /tmp/xauth
standarduser@localhost:~$ sudo su
root@localhost:~$ xauth add 'cat /tmp/xauth'
Atenção: verifique os backticks! Eles não podem ser substituídos por citações! Você precisa do sudo
instalado para continuar o segundo comando!
VERSÃO LONGO ORIGINAL
Para corrigir as coisas, primeiro detecte qual número de exibição standarduser
usa:
standarduser@localhost:~$ echo $DISPLAY
localhost:21.0
Nesse caso, é 21.0
. Em segundo lugar, mostre a lista de cookies de standarduser
:
standarduser@localhost:~$ xauth list
localhost/unix:1 MIT-MAGIC-COOKIE-1 51a3801fd7776704575752f09015c61d
localhost/unix:21 MIT-MAGIC-COOKIE-1 0ba2913f8d9df0ee9eda295cad7b104f
localhost/unix:22 MIT-MAGIC-COOKIE-1 22ba6595c270f20f6315c53e27958dfe
localhost/unix:20 MIT-MAGIC-COOKIE-1 267f68b51726a8a381cfc10c91783a13
O cookie para a exibição 21.0
é o segundo da lista e termina com 104f
.
A última coisa a fazer é adicionar esse cookie específico à raiz .Xauthority
. Faça o login como root e faça o seguinte:
root@localhost:~$ xauth add localhost/unix:21 MIT-MAGIC-COOKIE-1 0ba2913f8d9df0ee9eda295cad7b104f
Essa é uma maneira simples e simples de lidar com o erro X11 connection rejected because of wrong authentication
enquanto você executa su
como usuários diferentes no script bash ou screen
. E, a propósito, graças a esse cara por seu brilhante post.