Putz, show Paulo. Obrigado pela paci�ncia!

From: Paulo Pires <[EMAIL PROTECTED]>
Reply-To: [email protected]
To: [email protected]
Subject: Re: [FUG-BR] usuario logando com su
Date: Wed, 19 Jan 2005 12:20:53 -0200

On Wed, 19 Jan 2005 10:42:21 -0200, louis louis <[EMAIL PROTECTED]> wrote:
> Ol� celso,
>
> funcionou, mas me diz o que � que esse +s faz? habilita o usuario q est� no
> grupo do wheel??? pois quando dou um ls -l /sbin/reboot, antes de dar o
> comando chmod +s ele me retornava:
>
> -r-xr-xr-x 4 root wheel 227484 Oct 9 2002 /sbin/reboot
>
> depois que eu rodei o comando:
>
> -r-sr-sr-x 4 root wheel 227484 Oct 9 2002 /sbin/reboot
>
> O x saiu e entrou o s! O que significa isso?


A sa�da do ls -l mostra na primeira coluna as permiss�es do arquivo,
utilizando dez caracteres, que s�o divididos em 4 grupos.  O primeiro
grupo cont�m apenas o primeiro car�ter, que indica o tipo de arquivo
(exemplo: h�fen para arquivo comum, "d" para diret�rio e "l" para link
simb�lico).

Os outros tr�s grupos s�o formados pelos caracteres cada, em
sequ�ncia, da esquerda para a direita.  O primeiro grupo se refere �s
permiss�es que o arquivo tem com rela��o ao usu�rio ao qual o arquivo
pertence (indicado na terceira coluna; no caso, "root").  O segundo
grupo indica as permiss�es do arquivo em rela��o ao grupo a que
pertence (quarta coluna; "wheel").  O �ltimo grupo indica as
permiss�es que todos os outros usu�rios, diferentes do pr�prio dono
("root") e n�o pertencentes ao grupo ("wheel") t�m sobre o arquivo.

Dentro de cada grupo de caracteres, cada car�ter corresponde a um
aspecto de intera��o com o arquivo.  O car�ter mais � esquerda �
sempre "r" ou "-", com "r" indicando que o arquivo pode ser lido
(read), e "-" indicando que o bit de leitura est� desligado, e o
arquivo n�o pode ser lido.  O segundo car�ter pode ser "w" ou "-",
indicando se o arquivo pode sofrer ou n�o acessos de escrita (write).
O terceiro car�ter � geralmente "x" ou "-", indicando se o arquivo �
execut�vel (ou, no caso de diret�rios, se � poss�vel ou n�o entrar no
diret�rio).  Assim, "-r-xr-xr-x" para a entrada "reboot" indicia que
"reboot" � um arquivo comum, leg�vel e execut�vel por seu dono, por
seu grupo e todos os demais usu�rios.

Infelizmente, o ls -l utiliza grupos de tr�s caracteres, como se fosse
para mostrar tr�s valores bin�rios, mas h�, na verdade, quatro bits
por agrupamento de usu�rio/grupo/outros.  Como estes outros tr�s bits
afetam apenas arquivos execut�veis, os autores do ls preferiram usar
representa��es especiais nas colunas de exibi��o do bit de execu��o,
ao inv�s de gastarem outras tr�s colunas, que ficariam a maior parte
do tempo com "-".  Dois desses bits t�m o car�ter de "set identity", e
s�o associados ao usu�rio e ao grupo a que pertence o arquivo
execut�vel, sendo, portanto, respectivamente chamados de
"set-user-identity" (ou setuid) e "set-group-identity" (ou setgid),
signficando, respectivamente, que tal execut�vel, quando executado por
qualquer usu�rio, executar� como se tivesse sido executado por seu
dono e/ou algu�m do grupo a que pertence.

O ls -l indica que um programa � setuid (e/ou setgid) colocando "s" em
lugar de "x" na hora de mostrar as permiss�es relativas ao usu�rio
(e/ou grupo) a que o arquivo pertence.  Algumas vezes, pode aparecer
"S", ao inv�s de "s", o que significa que o bit de set-id est� ligado,
mas o bit de execu��o est� desligado.

O terceiro desses bits especiais � atualmente v�lido apenas para
diret�rios como o /tmp do sistema, onde qualquer um pode gravar
arquivos, mas s� o dono de um arquivo dentro desse diret�rio pode
remover tal arquivo.  Isto � indicado pelo ls -l ao exibir tais
diret�rios com um "t", em lugar de "x", no agrupamento relativo a
outros usu�rios (�ltimos tr�s caracteres na primeira coluna do ls -l).
 Se aparecer "T" nessa posi��o, isso significa que o bit "sticky" est�
ligado, mas o bit de execu��o est� desligado.

O "chmod +s /sbin/reboot", que voc� executou, significa, literalmente,
"mude (CHange) o modo (MODe) de /sbin/reboot, ligando ("+") todos os
bits de Set-identity".  Foi o que ocorreu, de fato, pois o ls -l
passou a mostrar "-r-sr-sr-x", o que significa:

    - o arquivo � um arquivo comum ("-" na primeira posi��o);

    - no que diz respeito ao dono do arquivo (posi��es 2 a 4), o
arquivo pode ser lido, n�o pode ser escrito, pode ser executado por
seu dono e, quando executado (por qualquer um), vai assumir a
identidade do usu�rio que est� no arquivo;

    - no que diz respeito ao grupo a que o arquivo pertence (posi��es
5 a 7), o arquivo pode ser lido, n�o pode ser gravado, pode ser
executado por qualquer membro do grupo e, quando executado (por quem
quer que seja), vai assumir a identidade do grupo a que pertence;

    - no que diz respeito a todos os (outros) usu�rios do sistema
(posi��es 8 a 10), o arquivo pode ser lido, n�o pode ser escrito e
pode ser executado.

Ou seja, qualquer usu�rio da m�quina pode fazer com que ela reboote.

Compare isto com as do programa shutdown.

% ls -l /sbin/shutdown
-r-sr-x---  1 root  operator  168672 Sep 25  2003 /sbin/shutdown

O shutdown, que � uma interface melhorada aos comandos reboot, halt e
poweroff, pode ser lido e executado pelo seu dono (root) ou qualquer
membro do grupo operator.  Outros usu�rios n�o podem l�-lo nem
execut�-lo (veja que as posi��es 8 a 10 est�o todas com "-").  Quando
executado, o programa vai assumir o car�ter de root (setuid) sem mudar
o car�ter do grupo (at� porque seria in�til, pois quem j� tem car�ter
de root j� pode assumir a identidade de usu�rio e grupo que quiser).

Leia mais sobre permiss�es em chmod(1) e chmod(2).
--
Um abra�o.
        Paulo A. P. Pires

... Qui habet aurem audiat quid Spiritus dicat ecclesiis.

_______________________________________________________________
Para enviar um novo email para a lista: [email protected]
Sair da Lista: http://mail.fug.com.br/mailman/listinfo/freebsd_fug.com.br
Historico: http://www4.fugspbr.org/lista/html/FUG-BR/

_________________________________________________________________
MSN Messenger: converse online com seus amigos . http://messenger.msn.com.br



_______________________________________________________________ Para enviar um novo email para a lista: [email protected] Sair da Lista: http://mail.fug.com.br/mailman/listinfo/freebsd_fug.com.br Historico: http://www4.fugspbr.org/lista/html/FUG-BR/

Responder a