Como posso mudar o usuário em um shell e usar a sessão de exibição do gnome existente?

4

Se eu mudar de usuário em um terminal.

su bob

Não consigo abrir gedit porque bob não possui a exibição.

Se eu executar

xhost +

antes de mudar para bob eu posso abrir a tela para alguns aplicativos, mas não todos. Eu recebo a seguinte saída ao tentar executar gedit :

(crashreporter:4415): GnomeUI-WARNING *: While connecting to session manager: None of the authentication protocols specified are supported.
*
GLib-GIO:ERROR:/build/buildd/glib2.0-2.28.6/./gio/gdbusconnection.c:2279:initable_init: assertion failed: (connection->initialization_error == NULL)

    
por z7sg 28.06.2011 / 14:14

2 respostas

3

Se você quiser permitir que o usuário bob acesse sua sessão X existente de Na linha de comando, você pode inserir esses comandos no terminal:

xauth nextract - $DISPLAY | sudo -u bob xauth nmerge -

Thius usa o comando xauth para extrair as informações de autenticação do usuário atual (primeiro parte do comando, antes do | ) e, em seguida, mesclá-lo no usuário bob $HOME/.Xauthority file. Note que isso requer /etc/sudoers a ser configurado para que você possa executar comandos como usuário bob (este é o padrão se você for o usuário admin em uma caixa do Ubuntu).

Você pode alternar para o usuário bob com su -l .

Como alternativa, você pode emitir esses comandos separados:

xauth nextract - $DISPLAY > /tmp/xauth.temporary.file
su -l bob -c 'xauth nmerge - < /tmp/xauth.temporary.file'
rm /tmp/xauth.temporary.file

Observe que:

1) o arquivo temporário deve ter permissões de tal forma que o usuário bob possa      lê-lo (o que muitas vezes significa que qualquer qualquer usuário no sistema pode ler      isto);

2) há uma janela de tempo durante a qual qualquer usuário que pode ler o      arquivo temporário pode obter acesso ao seu display X.

Portanto, é melhor usar a abordagem sudo , pois ela não tem essas desvantagens.

    
por Riccardo Murri 28.06.2011 / 14:36
0

Outra maneira, depois que xhost + foi executado:

dbus-launch gedit --sm-client-disable
    
por enzotib 28.06.2011 / 15:01