Hugo, valeu pela explicação cara, show de bola! Agora eu entendi.

Abraços!


 --------------------
Daniel Araujo
Curitiba - Paraná
email: [email protected]
MSN: [email protected]
skype ID: daniel.maxxi 
Linux User #470938


"O pinguim dominará o mundo!"
"Software is like sex: it's better when it's free."
Linus Torvalds




________________________________
De: Hugo Azevedo <[email protected]>
Para: [email protected]
Enviadas: Sábado, 29 de Agosto de 2009 9:00:56
Assunto: Re: [lpi] Duvida - Permissões SUID

  
Bom dia, Flávio.
 
O SUID é uma permissão especial que faz com que arquivos executáveis sejam 
executados por qualquer usuário como se ele fosse o dono.
Muitos arquivos binários, executáveis ou scripts fazem diversas chamadas ao 
sistema e/ou acessam vários arquivos durante a execusão. Mesmo que o usuário 
tenha permissão de executar aquele arquivo, se durante a execução houver alguma 
chamada ao sistema ou for necessário acessar outros arquivos que somente o dono 
tenha permissão, o arquivo não terminará a sua execusão e um erro aparecerá 
(permissão negada).
É neste momento que entra o SUID. Como qualquer usuário terá as mesmas 
permissões do dono, então o arquivo será executado sem maiores problemas.

Um exemplo clássico seria com o comando "ifconfig" (usado na maioria das vezes 
para configurar um endereço IP numa interface de rede. Veja abaixo as 
permissões desse executável:
 
# ls -lh /sbin/ifconfig
-rwxr-xr-x 1 root root 58K 2005-12-04 02:52 /sbin/ifconfig
 
Veja que o dono é o "root" e ele tem a permisão de ler, escrever e executar. 
Quem pertence ao grupo "root" pode ler e executar. Já qualquer outro usuário 
pode ler e executar. Então, se executarmos o "ifconfig" com qualquer usuário 
consiguiremos executá-lo. Veja:
 
# su hugo  --> (logando com o usuário chamado "hugo")
$ /sbin/ifconfig  --> (executei o "ifconfig" com o usuário "hugo" e apareceu as 
informações de rede tranquilamente)
 
Ok. Até aqui tudo funcionou. Mas se tentarmos mudar o endereço IP da ETH0 
logado o usuário "hugo", será que conseguiríamos? A princípio sim, pois 
qualquer usuário tem permissão de executar. Então, vamos lá:
 
$ /sbin/ifconfig eth0 192.168.1.4
SIOCSIFADDR: Permissão negada
SIOCSIFFLAGS: Permissão negada
 
Poxa, apareceram duas mensagem de permissão negada e o IP não foi mudado. Por 
que será que isto aconteceu?
Isto aconteceu porque durante a execução do "ifconfig" houveram chamadas ao 
sistema que somente o "root" poderia fazer. Como o usuário era outro, então 
apareceram as mensagem de permissão negada.
 
Mas agora vem outra pergunta: Por que ao digitar somente "/sbin/ifconfig" o 
comando funcionou?
Funcionou proque não houverem chamadas que necessitassem das permissões do root.
 
Agora, se acrescentássemos o SUID ao "/sbin/ifconfig" , qualquer usuário 
poderia, por exemplo, mudar o IP da ETH0 ou de qualquer interface de rede 
tranquilamente.
 
 
 
Att,
Hugo Azevedo
www.hugoazevedo. eti.br 
"Na caixa dizia: Requer Microsoft Windows ou superior, então eu instalei o 
GNU/Linux!"
"On the box said: Requires Microsoft Windows or better, so I installed the 
GNU/Linux!"

--- Em sex, 28/8/09, Flávio Pereira Da Silva <flvi...@gmail. com> escreveu:


>De: Flávio Pereira Da Silva <flvi...@gmail. com>
>Assunto: [lpi] Duvida - Permissões SUID
>Para: l...@yahoogrupos. com.br
>Data: Sexta-feira, 28 de Agosto de 2009, 6:51
>
>
>  
>Gostaria de saber se alguém pode explicar a função do BIT SUID e porque ele é 
>tão perigoso ao sistema se não for bem gerenciado pelo root
>
>Exemplo.
>
># chmod a+s teste.sh
>
>Com esta linha de comando, o arquivo teste.sh pode ser executado por qualquer 
>usuário (parâmetro a - all), utilizando as permissões do dono do arquivo.
> 

________________________________
Veja quais são os assuntos do momento no Yahoo! + Buscados: Top 10 - 
Celebridades - Música - Esportes
   


      
____________________________________________________________________________________
Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com

Responder a