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 barra:
[bar@localhost ~]$ sudo -u foo -H firefox
Infelizmente esse comando falhou com o mesmo erro da pergunta (ou seja, nenhum protocolo especificado e não pode abrir a tela)
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 pude iniciar o Firefox (e outro aplicativo X) usando sudo
e o usuário foo.
Antecedentes : Na janela X, há uma arquitetura cliente / servidor. Ao iniciar um aplicativo, você solicita a autorização do servidor X para exibi-lo. Por padrão, depois de abrir uma sessão (você loga 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. A si
indica que a regra é do lado do servidor e autorizar o usuário local foo
para aplicações de display. O X Window é muito poderoso nesse sentido e você pode exibir aplicativos remotos localmente jogando com a DISPLAY
variável de ambiente e xhost
(mas não se limitando a eles). Antigamente, quando as pessoas digitavamxhost +
e implicitamente permitiu que todos usassem sua sessão X, era possível exibir aplicativos em suas telas para brincadeiras ;-) não tanto hoje em dia quanto as pessoas usam cada vez menos a arquitetura cliente / servidor do X Window (pelo menos pelo que observo no últimos 10 anos).
PS: Fiz isso para iniciar o Firefox em uma espécie de "prisão" (para evitar uma vulnerabilidade como o pdf.js no futuro). Mas descobri rapidamente que chamar o Firefox via sudo não permitirá que ele acesse o áudio nem o hardware de vídeo. Mas há um cara que explica claramente como ativar a aceleração e o áudio do hardware de vídeo ao chamar o Firefox via sudo . YMMV com estas instruções, por exemplo, ainda tenho uma permissão negada com áudio, mas o vídeo é bom (testado no Fedora 22 com o SELinux ON).