Permissões especiais: SUID, SGID e STICKY

13 de out de 2013 - Paulo Dias


Hoje quero mostrar as permissões especiais do linux: SUID, SGID e STICKY. Esses bits podem ser aplicados em determinadas situações para se conseguir um comportamento bem especifico.

Esses bits têm as seguintes características:

SUID

Esse bit só pode ser aplicado em arquivos executáveis. Basicamente, quando esse bit está ativado o arquivo é executado com as permissões do dono dele e não com as permissões de quem executou. Por exemplo, um arquivo executável onde o dono é o root e o bit SUID está ativado, sempre roda com as permissões do root, ou seja, qualquer usuário pode executa-lo com privilégios de administrador.

SGID

O bit SGID quando é aplicado em um arquivo executável, funciona de forma parecida com o SUID, mas é usada a permissão do grupo do arquivo e não do dono. Além disso, esse bit pode ser aplicado em diretórios, quando isso acontece, tudo que for criado dentro desse diretório terá o grupo dele, ou seja, se o diretório pai tem o bit SGID ativado, tudo que for criado dentro dele terá o seu grupo e não o do usuário que criou.

STICKY

O bit STICKY geralmente é utilizado em diretórios públicos (777) onde todos os usuários podem gravar e apagar arquivos. Esse bit altera a capacidade dos usuários apagarem arquivos/diretórios dos quais não sejam donos, ou seja, o bit STICKY interfere na permissão de apagar arquivos/diretórios permitindo apenas que o usuário apague os seus arquivos/diretorios (onde ele é dono), mesmo que ele tenha a permissão necessária para apagar arquivos de outros usuários. (o root obviamente não sofre esse bloqueio )

Como aplicar essas permissões

Para ativar esses bits você pode usar o chmod de forma octal colocando um digito a mais no inicio da sequencia de dono, grupo e outros.( X777 )

Para ativar o SUID você digita o comando: chmod 4777

Para ativar o SGID você digita o comando: chmod 2777

Para ativar o STICKY você digita o comando: chmod 1777

OBS: não precisa ser sempre X777, as 3 últimas você define como quiser, dependendo das permissões que for aplicar para o dono, grupo e outros

Exemplos

SUID

Perceba que tem 's' no lugar do 'x' na sequencia de permissões do dono. Ele representa SUID ativado

SGID

Perceba que tem 's' no lugar do 'x' na sequencia de permissões do grupo. Ele representa SGID ativado

STICKY

Perceba que tem 't' no lugar do 'x' na sequencia de permissões do outros. Ele representa STICKY ativado

Saib mais...
http://www.vivaolinux.com.br/artigo/Entendendo-as-permissoes-no-Linux
http://pt.wikipedia.org/wiki/Sistema_octal


Paulo Dias

Graduado no curso tecnólogo em análise e desenvolvimento de sistemas. Defensor do Software Livre e da democratização da informação. Possui as certificações Linux LPIC-1 e Java OCA. Atualmente exerce a função de coordenador técnico na área de telecomunicações.

Siga-me no Twitter


Tags: Linux