Em Sexta 30 Março 2001 18:24, Marcio Merlone escreveu:
> Tenho apenas uma noção meio sombreada do que são SETUID e SETGID. Alguém
> pode dar uma explicada para que serve, como usa, quais os riscos? Não
> consegui achar muita info a respeito, e se alguém puder falar minha língua,
> agradeço.

Ola Marcio.

Alem dos tipos de permissoes padrao q existem (read, write e execute) para 
dono do arquivo, grupo do arquivo e demais usuarios, tambem existem os tais 
SUID e SGID.

Eles funcionam da seguinte forma:

Se vc "setar" o SUID de um arquivo, significa q toda vez q ele "rodar" ele 
ira faze-lo com o privilegio do dono do arquivo e nao do usuario q o "rodou".
Por exemplo: Vamos supor q vc tenha um programa chamado "xyz" cujo dono eh o 
usuario ALEX e o grupo DEVELOP. Se o usuario ALEX setar a permissao SUID para 
este programa, mesmo q o usuario FULANO execute o programa, este programa ira 
"rodar" com os privilegios do usuario ALEX, como se fosse o usuario ALEX q 
tivesse "rodado" o programa.

O uso deste artificio reside no fato de q muitos programas dependem de outros 
programas e arquivos para concluir determinada tarefa, entao se o usuario 
tiver pemissao para "rodar" este programa, pode ser q este programa (sendo 
executado em nome deste usuario) nao tenha permissao suficiente para executar 
outros programas ou abrir determinados arquivos. Sacou!!!

Porem isto nao eh algo aconselhavel a se fazer pois vc pode "erroneamente" 
setar o SUID de um programa e deixar liberada a permissao de gravacao deste 
arquivo. Ai algum "malandrao" pode criar um script para alterar o conteudo 
deste programa e conseguir efeitos indesejados como um shell com privilegio 
root (se o root for o dono deste arquivo, por exemplo).

No caso do SGID eh igualzinho soh q aplicado ao grupo do usuario.

Em octal, a "setagem" destas permissoes sao: 2000 para SGID e 4000 para SUID.

Analisemos o seguinte exemplo: Arquivo "xyz", dono ALEX, grupo DEVELOP. Se vc 
quiser "setar" o SUID deste arquivo vc podera faze-lo da seguinte forma: 
chmod 4744 xyz. Isso indica q o arquivo tem SUID e suas permissoes sao 
leitura, gravacao e execucao para o dono do arquivo, leitura e execucao para 
o grupo e outros usuarios. Para "setar" SGID eh so dar um chmod 2744.

Mais um detalhe, quando vc der um ls -la, aparecera o caractere "s" no lugar 
do "x" da coluna das permissoes do dono do arquivo indicando arquivos com 
SUID e na coluna das permissoes do grupo do arquivo indicando arquivos com 
SGID.

Exemplo:

-rwsr-xr-x
   |
   +-------> Bit SUID

-rwxr-sr-x
      |
      +----> Bit SGID

OBS: Vc soh conseguira visualizar corretamente o esquema acima se mudar a 
fonte para uma fonte "monoespacada".

Acho q eh isso.
Se eu tiver falado alguma "besteira" por favor me corrijam. ;-)

T+

--
Jorge Luiz de Paula Martins Filho
Analista de Sistemas
Linux Registered User # 189215
--

Jamais deixe seu computador saber que você está com pressa!

Assinantes em 31/03/2001: 2188
Mensagens recebidas desde 07/01/1999: 107287
Historico e [des]cadastramento: http://linux-br.conectiva.com.br
Assuntos administrativos e problemas com a lista: 
            mailto:[EMAIL PROTECTED]

Responder a