você está aqui: Home  → Arquivo de Mensagens

Arquivos setuid e setgid

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 19 de Abril de 1997

Programas com setuid bit são um mal necessário. Um mal porque se codificados erradamente podem ser utilizados para atacar um sistema e necessários porque muitas funções do sistema operacional dependem de sua existência para o seu funcionamento.

Um exemplo bastante claro é o arquivo passwd. Este arquivo não pode ser editado por usuários comuns, porque desta forma a criação de contas ficaria aberta a todos.

O arquivo /etc/passwd possui as seguintes permissões:

  -rw-rw-r--   1 root     security     221 Sep 26 11:54 /etc/passwd

O usuário root e os usuários do grupo security podem ler e gravar este arquivo. Os demais usuários podem apenas ler as informações nele contidas.

Os usuários comuns não podem criar entradas mas devem poder alterar suas senhas. Como resolver este impasse? Através de programas setuid. O programa passwd por sua vez possui as seguintes permissões:

  % ls -l /usr/bin/passwd
  -r-sr-xr-x   1 root     1 security   48358 Nov  2 1993  /usr/bin/passwd

O caracter "s" em "r-s" significa que todos os que executam este programa o executam como o usuário proprietário do arquivo, neste caso, root.

Desta forma, quando um usuário digita "passwd" para trocar sua senha, ele vai conseguir gravar a nova senha no arquivo /etc/passwd independentemente do fato de que este arquivo não possui permissão universal de gravação.

Da explicação anterior pode-se entrever o perigo que programas com o setuid bit ligado podem representar para o sistema. Muitos administradores de sistemas criam shell scripts e programas com o setuid bit ligado para desempenhar funções determinadas no sistema. A norma geral a ser seguida é criar o mínimo possível de programas com estas características, e caso realmente necessário, examinar e testar o co'digo à exaustão para evitar possíveis erros que possam ser explorados por usuários mal intencionados.

Além disto tudo, o administrador de sistemas tem que controlar o nu'mero de programas que possuem o setuid bit ligado em seu sistema.

O comando

  find / -type f -a \(-perm 0400 -o -perm 0200 \) -print

irá localizar todos os arquivos no sistema que possuam o setuid ou setgid bit ligados. O setgid bit, possui funcionalidade idêntica ao setuid bit, mas atua sobre as permissões do grupo ao qual pertence o programa.

A listagem gerada deverá então ser cuidadosamente examinada para detectar possíveis anormalidades e para se tomar então as devidas providências.



 

 

Veja a relação completa dos artigos de Rubens Queiroz de Almeida

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script