Talvez isso possa ajudar outra pessoa. Eu tive a mesma pergunta que você, mas para um usuário normal. Digamos que eu queira iniciar o firefox usando a conta de usuário foo. Estou logado como bar:
[bar@localhost ~]$ sudo -u foo -H firefox
Infelizmente, esse comando falhou com o mesmo erro da pergunta (ou seja, nenhum protocolo especificado & não pode abrir a exibição)
Minha solução foi simplesmente adicionar o usuário foo à lista de acesso autorizado ao servidor X.
xhost si:localuser:foo
E foi isso, então eu fui capaz de lançar o Firefox (e outro aplicativo X) usando sudo
e o usuário foo.
Antecedentes : No X Window, existe uma arquitetura cliente / servidor. Quando você inicia um aplicativo, você solicita a autorização do servidor X para exibi-lo. Por padrão, uma vez que você abre uma sessão (faz login graficamente), você (seu usuário) obviamente tem permissão para se comunicar com o servidor e exibir aplicativos. Outros usuários não têm essa permissão, a menos que você a especifique. xhost
é uma ferramenta para manipular a lista de permissões. O si
indica que a regra é do lado do servidor e autoriza o usuário local foo
a exibir aplicativos. X Window é muito poderoso nesse aspecto e você pode exibir aplicações remotas localmente jogando com a variável de ambiente DISPLAY
e xhost
(mas não se limitando a elas). Em épocas mais antigas, quando as pessoas digitavam xhost +
e implicitamente permitiam que todos usassem sua sessão X, era possível exibir o aplicativo em sua tela para brincadeiras ;-) não tanto hoje em dia quanto as pessoas estão cada vez menos usando o X Window client / server arquitetura (pelo menos pelo que eu observei nos últimos 10 anos).
Espero que isso ajude os outros.
PS: Eu fiz isso para lançar o Firefox em uma espécie de "prisão" (para evitar um vulnerabilidade como para pdf.js no futuro). Mas eu rapidamente descobri que ligar para o Firefox via sudo não permite que ele acesse o áudio nem o hardware de vídeo. Mas há um cara que explica claramente como ativar o hardware de vídeo aceleração e áudio ao chamar o Firefox via sudo . YMMV com estas instruções, e. Eu ainda tenho uma permissão negada com áudio, mas o vídeo está bem (testado no Fedora 22 com o SELinux ON).