Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Por que o X roda como root?
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Portuguese
View previous topic :: View next topic  
Author Message
Matheus Villela
Apprentice
Apprentice


Joined: 25 Oct 2003
Posts: 263

PostPosted: Sun Nov 14, 2004 1:30 pm    Post subject: Por que o X roda como root? Reply with quote

Tava olhando o gnome-system-monitor e só agora fui me dar conta que o X fica rodando como root, perguntei a um amigo que usa slackware e ele falou que o dele também fica rodando como root.

Agora eu pergunto: é normal isso?(parece que sim)

Eu procurei no google por coisas como "xorg running as root" "x11 running as root" e coisas semelhantes mas não achei em lugar algum uma explicação disso.

Não uso gdm, xdm, kdm, entrance nem nada disso(antes usava), então não compreendo como que o X aparece rodando como um processo do root se dou login no terminal como user comum e rodo "startx" como user comum :S

Alguém poderia me explicar isso ou apontar um link(já que não achei googleando) com uma explicação?
Back to top
View user's profile Send private message
malloc
l33t
l33t


Joined: 19 Sep 2003
Posts: 762

PostPosted: Sun Nov 14, 2004 4:13 pm    Post subject: Reply with quote

Isso acontece porque o X precisa de aceder a recursos e a ficheiros que só o root tem permissões para o fazer.
_________________
--> Linux ### 2.6.11-ck2 #1 Sat Mar 12 20:21:30 WET 2005 i686 GNU/Linux <--
Back to top
View user's profile Send private message
Matheus Villela
Apprentice
Apprentice


Joined: 25 Oct 2003
Posts: 263

PostPosted: Sun Nov 14, 2004 10:11 pm    Post subject: Reply with quote

malloc wrote:
Isso acontece porque o X precisa de aceder a recursos e a ficheiros que só o root tem permissões para o fazer.

Arquivos(ficheiros) eu não consigo imaginar como seja realmente necessário... recursos consigo imaginar que é muito melhor pra interação com o vídeo, de qualquer forma não consigo pensar que seja realmente essencial... pois pra interagir com por exemplo com a placa de áudio o mplayer não se executa como root em um terminal :S.
--
É _realmente_ necessário ou isso é uma escolha de design pra facilitar a ação de drivers de vídeo? Alguém com experiência de uso de outros servidores gráficos poderia me dizer se ocorre a mesma coisa? Ler documentação "técnica" pra mim não seria problema, gostaria de compreender bem sobre isso :)
Back to top
View user's profile Send private message
malloc
l33t
l33t


Joined: 19 Sep 2003
Posts: 762

PostPosted: Mon Nov 15, 2004 5:07 pm    Post subject: Reply with quote

Matheus Villela wrote:
[
Arquivos(ficheiros) eu não consigo imaginar como seja realmente necessário... recursos consigo imaginar que é muito melhor pra interação com o vídeo, de qualquer forma não consigo pensar que seja realmente essencial... pois pra interagir com por exemplo com a placa de áudio o mplayer não se executa como root em um terminal :S.

Qualquer acesso a "devices" (seja hardware ou certas posições de memoria) só pode ser feito pela root, a questão é q na maior parte das vezes isso é feito de modo transparente para o user, ou seja não ves isso a acontecer mas acontece. Outro tipo de acessos é a determinadas posições de memória ou blocos de memória q só podem ser feitos pela root. Portanto na práctica o X corre como root por causa de uma mescla de necessidade e de optimização :)
_________________
--> Linux ### 2.6.11-ck2 #1 Sat Mar 12 20:21:30 WET 2005 i686 GNU/Linux <--
Back to top
View user's profile Send private message
Operador Nabla
Apprentice
Apprentice


Joined: 06 Feb 2004
Posts: 176
Location: Salesópolis - SP - Brasil

PostPosted: Fri Nov 19, 2004 12:33 pm    Post subject: Reply with quote

Respondendo estritamente a pergunta "como?" (acho que a dúvida aqui não é bem essa, mas sempre há alguém que pode querer esta resposta):

O arquivo executável do X (/usr/bin/Xorg, se não me engano) deve estar configurado com a permissão de acesso SUID (dê uma olhada na saída do comando ls -l /usr/bin/Xorg: você deve encontrar um s no lugar de x no que se refere às permissões de acesso do dono do arquivo -- algo como -r-sr-xr-x no começo da linha).

Assim, o X sempre será executado pelo seu dono (neste caso, root), mesmo que seja invocado por outro usuário (uma alternativa interessante ao comando sudo, guardados seus riscos).
Back to top
View user's profile Send private message
fernandotcl
Veteran
Veteran


Joined: 20 Nov 2003
Posts: 1396
Location: Sao Paulo, Brazil

PostPosted: Fri Nov 19, 2004 8:49 pm    Post subject: Reply with quote

O X só precisa de uma enxugada de código pra ficar mais seguro. A maneira como as coisas são feitas é teoricamente segura. O X é a camada que lida com hardware básico, se a parte gráfica não fosse tão pesada entraria no kernel como o OSS ou Alsa.

Você não pode desvincular o X do controle de hardware da máquina. A maneira como o X é escrita é boa, porque ele é uma camada muito fina. Os programs de interface gráfica (incluindo toolkits) se comunicam com o X com permissões de usuários, no sistema cliente-servidor.

Geralmente quando se diz "não rode X como root", se quer dizer "não rode aplicações logados como root", mesmo porque, como já foi explicado, o X é sempre rodado como root. Seria uma falha de segurança se o sistema pudesse permitir com que os usuários pudessem acessar o hardware diretamente. Já quanto a rodar programas do X como root, o problema é o mesmo de qualquer outro programa. Você pode ter uma diferença se pensar que programas gráficos são geralmente constituidos de várias camadas (incluíndo o toolkit), e portanto as brechas de segurança podem existir com mais freqüência, já que o universo é maior.
_________________
RTFM!
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Portuguese All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum