você está aqui: Home  → Arquivo de Mensagens

Permissões de arquivos e diretórios em Sistemas Unix (setgid, setuid, sticky)

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 06 de Maio de 1997

A última linha de defesa contra invasores do sistema são as permissões oferecidas pelo sistema. Cada arquivo ou diretório possui três grupos de bits de permissão a ele associados: um grupo para o usuário ao qual o arquivo pertence, um grupo para os usuários do grupo ao qual o arquivo está associado e um grupo para todos os demais usuários. Cada grupo contém três grupos de bits idênticos que controlam:

Acesso de leitura(read)

Se este bit estiver ligado, o arquivo ou diretório possui acesso de leitura. Em se tratando de um diretório, esta permissão permite a um usuário ver o conteúdo de um diretório mas não lhe permite acessá-lo.

Acesso de gravação (write)

Se este bit estiver ligado, o arquivo ou diretório pode ser modificado. Em se tratando de um diretório, a permissão de escrita implica a capacidade de criar, apagar ou renomear arquivos. Note que a permissão para remover um arquivo não é determinada pelas permissões do arquivo mas sim pelas permissões do diretório que o contém.

Acesso de execução (execute)

Se este bit estiver ligado, o arquivo ou diretório pode ser executado (pesquisado). No caso de um diretório, a permissão de execução implica que os arquivos nele contidos podem ser acessados

Além destas permissões, existe um quarto bit que se ligado atribui as seguintes propriedades aos arquivos e diretórios:

setuid

Este bit, se ativado no grupo de permissções do dono do arquivo, indica que todos os que executarem este programa o estarão fazendo com os privilégios do proprietário do arquivo. Por exemplo, o programa sendmail é setuid root, o que lhe permite gravar arquivos na fila de mensagens do sistema, o que é vedado a usuários normais. Este bit não possui significado em arquivos não executáveis

setgid

Este bit atua da mesma forma que o setuid bit, com a diferença que o programa será executado com as permissões do grupo ao qual pertence

sticky

O sticky bit informa ao sistema operacional a atuar diferentemente com relação à imagem executável do arquivo. É remanescente de versões antigas do Unix e possui pouco uso hoje. Diretórios que possuem modo 777 que têm este bit ligado não podem ser removidos (/tmp por exemplo).

Shell scripts que possuem os bits setuid ou setgid ligados não são seguros, não importa quantas precauções tenham sido tomadas ao escrevê-los. Tais scripts nunca devem ser permitidos em qualquer sistema Unix.

Nas versões mais recentes de sistemas Unix foi acrescentado um novo significado ao sticky bit quando aplicado a diretórios. Quando este bit é ativado em um diretório, usuários não podem apagar ou renomear arquivos pertencentes a outros usuários. Isto é tipicamente útil no caso de diretórios como /tmp. Normalmente o diretório /tmp possui acesso universal para gravação, permitindo que qualquer usuário remova arquivos pertencentes a qualquer outro usuário. Ativando o sticky bit no diretório /tmp, os usuários podem remover apenas seus próprios arquivos. Para ativar o sticky bit em um diretório, use o comando:

  # chmod o+t /tmp

ou

  # chmod 1777 /tmp

Ao emitirmos o comando:

  # ls -ld /tmp
  drwxrwxrwt   4 bin      bin         3584 May  5 14:17 /tmp

O caracter "t" em drwxrwxrwt indica que o sticky bit deste diretório está ligado.

Ao se criar um arquivo normalmente todas as permissões são ativadas. Como isto raramente é o desejado, o valor do umask é usado para modificar o grupo de permissões com as quais um arquivo é criado. Ou seja, da mesma forma com que o comando chmod especifica quais bits devem ser ligados, o comando umask especifica quais bits devem ser desligados.

  umask 022

Para impedir a criação acidental de arquivos pertencentes ao superusuário com permissão 777.



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

 

 

Opinião dos Leitores

Cesar
14 Jan 2017, 01:23
Ótimo, principalmente a parte do Sticky!
Luiz L. Marins
02 Jan 2013, 10:16
Prezado Rubens ... obrigado pela dica.

Tenho uma observação e uma sugestão:

Observação > dicas são feitas para iniciantes, não para experientes.

Sugestão > se são para iniciantes, há que dar o passo-a-passo.

Talvez seja este o motivo da baixa nota do artigo, que é importante.

*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