Como posso rodar / usr / bin / Xorg sem o sudo?

8

Esta pergunta é sobre como executar /usr/bin/Xorgdiretamente no Ubuntu 14.04.

E sei que existe o Xdummy, mas não consegui fazer o driver fictício funcionar corretamente com a GPU nvidia, portanto não é uma opção.

Copiei todo o sistema do xorg.confe /usr/lib/xorg/modules, e modificou-los um pouco. (Especificado ModulePathno meu xorg.conftambém)

A execução do seguinte comando como root funciona bem:

Xorg -noreset +extension GLX +extension RANDR +extension RENDER -logfile ./16.log -config ./xorg.conf :16

Mas se eu fizer isso como um usuário não raiz (a permissão do arquivo de log está OK), esse erro ocorre:

(EE) 
Fatal server error:
(EE) xf86OpenConsole: Cannot open virtual console 9 (Permission denied)
(EE) 
(EE) 
Please consult the The X.Org Foundation support 
     at http://wiki.x.org
 for help. 
(EE) Please also check the log file at "./16.log" for additional information.
(EE) 
(EE) Server terminated with error (1). Closing log file.

Você poderia me ajudar a rodar o Xorg sem o sudo ??

noname
fonte
Eu não acho que é possível executar o X como não raiz; ele precisa acessar muito material de hardware e sistema diretamente.
dirkt 08/08
3
set setuidbit no Xorg:chmod +s $(which Xorg)
Serge
@dirkt É possível em sistemas recentes, mas não em todos os drivers. Veja, por exemplo , Ubuntu , Debian , Fedora , Gentoo , Arch ,…
Gilles 'SO- stop be evil'
Obrigado pessoal! Parece que o seu conselho funcionou para mim!
noname

Respostas:

5

Para determinar quem tem permissão para executar o X, configure-o com

dpkg-reconfigure x11-common

Existem três opções: somente root, somente usuários do console ou qualquer pessoa. A entrada está localizada em /etc/X11/Xwrapper.config.


Desde o Debian 9 e o Ubuntu 16.04, esse arquivo não existe. Após a instalação xserver-xorg-legacy, o arquivo reaparece e seu conteúdo deve ser alterado de:

allowed_users=console

para:

allowed_users=anybody
needs_root_rights=yes

Você também precisa especificar o terminal virtual a ser usado ao iniciar o X, caso contrário, poderão ocorrer erros. Por exemplo:

Xorg :8 vt8
mviereck
fonte
3

O X precisa acessar os dispositivos de entrada (mouse e teclado) e o monitor e a placa gráfica para a saída.

Para conseguir isso para não raiz X, você pode alterar o grupo de Xorgpartir rootpara input, definir o bit setgit, e adicionar seu usuário ao grupo video:

chown root:input /usr/lib/xorg/Xorg
chmod g+s /usr/lib/xorg/Xorg
adduser YOURUSERNAME video

(Em vez disso, você pode adicionar seu usuário a ambos videoe input, mas isso é desencorajado. Um usuário em grupo inputpode espionar entradas de outros usuários. Por exemplo, uma GUI no X provavelmente pode espionar a senha root digitada no console / tty.)

mviereck
fonte