Um programa X precisa de duas informações para se conectar a um monitor X.
Ele precisa do endereço da tela, que normalmente é :0quando você está conectado localmente ou :10, :11etc., quando está conectado remotamente (mas o número pode mudar dependendo de quantas conexões X estiverem ativas). O endereço da tela é normalmente indicado na DISPLAYvariável de ambiente.
Ele precisa da senha para a exibição. As senhas de exibição X são chamadas de cookies mágicos . Os cookies mágicos não são especificados diretamente: eles são sempre armazenados em arquivos de autoridade X, que são uma coleção de registros no formato “display :42has cookie 123456”. O arquivo de autoridade X é normalmente indicado na XAUTHORITYvariável de ambiente. Se $XAUTHORITYnão estiver definido, os programas serão usados ~/.Xauthority.
Consulte Abrir uma janela em um monitor X remoto (por que "Não é possível abrir o monitor")? para mais detalhes.
No seu caso, DISPLAYestá definido, mas os programas evidentemente não conseguem encontrar o arquivo de cookies. Verifique o valor de XAUTHORITYna sua sessão e abaixo su.
Se XAUTHORITYnão estiver definida na sua sessão e sudefine a HOMEvariável de ambiente para o diretório home do usuário root, então você precisa definir XAUTHORITYpara /home/msz/.Xauthorityonde /home/mszé seu diretório home.
Se for suremovido XAUTHORITYdo ambiente, coloque-o de volta ou configure supara não fazer isso.
Se o seu diretório pessoal estiver em alguns sistemas de arquivos como o NFS, o root poderá não conseguir lê-lo diretamente. Nesse caso, você pode copiar o .Xauthorityarquivo para um local diferente em um sistema de arquivos não NFS:
XAUTHORITY_COPY=$(umask 077; mktemp)
cat "${XAUTHORITY:-~/.Xauthority}" "$XAUTHORITY_COPY"
XAUTHORITY="$XAUTHORITY_COPY" su
rm "$XAUTHORITY_COPY"
unset XAUTHORITY_COPY
export $(dbus-launch)ou usarxhost [+]para poder iniciar programas usando o X e sua conta de superusuário.