Permissões Especias


Bits especiais

Além das permissões de leitura, escrita e execução, temos também três outros bits especiais de permissões que podemos usar:

SUID

Quando utilizado em um arquivo, faz com que todo usuário que executar este arquivo se transforme no usuário dono do arquivo durante a execução. Isto quer dizer que se um programa estiver com permissão de root e com o SUID ativado, qualquer usuário ao executar este programa, terá privilégios de root.
Este tipo de permissão deve ser sempre evitado. Use apenas quando realmente precisar, pois se um programa do root tiver alguma falha de segurança e estiver com o SUID habilitado, qualquer usuário poderia se tornar o root e conseguir poder total no sistema.

Um exemplo de aplicação que possui (e precisa) de SUID é o /usr/bin/passwd: o comando que muda a senha dos usuários. O arquivo de usuários e senhas do sistema tem permissões para que apenas o root possa ler, mas se um usuário normal quiser mudar a sua senha diretamente, sem a intervenção do usuário root, como ele poderia ler e modificar o arquivo de senhas se as permissões não deixam?

Quando o usuário executa o /usr/bin/passwd, o comando está com permissão de SUID, então é como se o usuário virasse o root temporariamente e por isso ele poderá ler o arquivo de senhas. Neste caso, o usuário estaria limitado a fazer apenas o que o programa /usr/bin/passwd permite: mudar senhas.

Vejamos as permissões do exemplo:

$ ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 30968 2008-04-02 20:57 /usr/bin/passwd

Podemos ver que há uma letra incomum nas permissões: o s. Quando o s está no campo de permissões ao usuário dono, quer dizer que está com SUID. Quando o s está minúsculo, indica que além do SUID, o programa também tem permissão de executável (x). Quando em maiúsculo, indica que apenas o SUID está ativo.

Adicionando e removendo o SUID de um arquivo:

$ ls -l arquivo
-rwxr-xr-x 1 coletivo coletivo 0 2008-08-30 12:42 arquivo
$ chmod u+s arquivo
$ ls -l arquivo
-rwsr-xr-x 1 coletivo coletivo 0 2008-08-30 12:42 arquivo
$ chmod u-s arquivo
$ ls -l arquivo
-rwxr-xr-x 1 coletivo coletivo 0 2008-08-30 12:42 arquivo

O SUID funciona apenas em executáveis, não funcionando em scripts shell. Em um script shell, o executável na verdade é o interpretador de comandos (a shell) e não o script. O SUID precisaria ser colocado na shell (o que não é nem um pouco recomendável).

SGID

Para arquivos, funciona como o SUID: quando executado por qualquer usuário, a execução acontece como se o grupo dono fosse o mesmo do arquivo, independente do usuário que estiver executando. Quando utilizado em diretórios, o SGID faz com que todos os arquivos criados tenham como grupo dono o grupo do diretório com o SGID. Isto é bastante usado em diretórios compartilhados.

Quando um arquivo ou diretório está com SGID, o ls -l irá mostrar a letra s (em maiúsculo ou minúsculo, que nem o SUID) na posição do campo do grupo.

Exemplo:

$ ls -ld apostila
drwxr-xr-x 2 coletivo coletivo 4096 2008-08-29 13:35 apostila
$ chmod g+s apostila
$ ls -ld apostila
drwxr-sr-x 2 coletivo coletivo 4096 2008-08-29 13:35 apostila
# cd apostila
# touch teste
# ls -l teste
-rw-r--r-- 1 root coletivo 0 2008-08-30 12:50 teste

Ao configurar o SGID no diretório apostila, o usuário coletivo forçou que qualquer usuário que criasse um arquivo dentro deste diretório o criaria como grupo-dono coletivo. Quando o root criou um arquivo vazio chamado teste, podemos ver que realmente o grupo deste arquivo ficou como coletivo.
O SGID, assim como o SUID, também não funciona diretamente em scripts, apenas em executáveis.

Sticky

Em tempos passados, quando aplicado em um arquivo, dizia ao sistema operacional que a execução deste arquivo não poderia utilizar a memória RAM do sistema, mas isto hoje em dia é completamente ignorado. Quando aplicado em um diretório, faz com que apenas o dono do arquivo e o dono do diretório possam remover o seu conteúdo. Isto é utilizado em diretórios temporários como o /tmp, onde qualquer pessoa pode criar arquivos, mas só podem remover seus próprios arquivos e não os dos outros usuários também.

O Sticky é representado pela letra t no terceiro campo de permissões: outros, no lugar do x. Exemplo:

$ ls -ld /tmp
drwxrwxrwt 11 root root 4096 2008-08-30 07:35 /tmp

Todos os usuários do sistema podem listar o conteúdo, criar, apagar arquivos e entrar no diretório. Porém, como existe o Sticky bit, estes usuários só poderão apagar seus próprios arquivos.

Forma Octal dos Bits Especiais

Vimos as formas extendidas de se configurar os bits especiais. Mas também há a forma octal, que funciona da mesma maneira que os bits de leitura, escrita e execução: cada bit é representado por um número e a soma destes números permite uma combinação de permissões especiais:

  • Número 1 – Sticky
  • Número 2 – SGID
  • Número 4 – SUID

O resultado destes números precedem os outros três números no comando chmod. Exemplo:

$ chmod 4755 arquivo
$ ls -l arquivo
-rwsr-xr-x 1 coletivo coletivo 0 2008-08-30 13:05 arquivo

Além das permissões normais (755), o SUID foi adicionado neste arquivo através do número 4.

$ chmod 6755 arquivo
$ ls -l arquivo
-rwsr-sr-x 1 coletivo coletivo 0 2008-08-30 13:05 arquivo

Os bits de SUID e SGID foram adicionados neste arquivo (2 + 4 = 6).

$ chmod 3755 apostila
$ ls -ld apostila
drwxr-sr-t 2 coletivo coletivo 4096 2008-08-30 13:05 apostila

Os bits de Sticky e SGID foram adicionados neste diretório (1 + 2 = 3).

 

Fonte: http://www.devin.com.br

Anúncios

Sou profissional de Tecnologia da Informação, estou na área cerca de 9 anos, tenho bastante experiência e espero que através deste site, ajudar diversos profissionais.

Publicado em Linux

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s

BLOG do Aureliano

Por: AURELIANO MARTINS PEIXOTO

rafaelbernardes.wordpress.com/

O seu portal de estudos

FRC Info Consultoria

Agende uma visita com o consultor: (21) 9199-7687

The WordPress.com Blog

The latest news on WordPress.com and the WordPress community.

%d bloggers like this: