Como gerenciar permissões no Linux

Nesse artigo pretendo desmistificar e esclarecer de forma bem didática e usando um vocabulário simples, o funcionamento do gerenciamento das permissões no mundo Linux. Esse texto tem como público alvo os administradores Linux e até mesmo aqueles que estão tendo seu primeiro contato com esse maravilhoso mundo. Acredito que muitas dúvidas serão tiradas ao longo desse artigo.

[ Hits: 70.821 ]

Por: Armando Martins de Souza em 10/05/2010


Permissões de acesso



Tipos de permissão de acesso

Temos 3 tipos básicos de permissão que são aplicáveis para o dono, o grupo e outros. São elas, permissão de leitura, escrita e execução. Cada uma dessas permissões é representada por 3 bits cada. Temos a representação de um bit para leitura, um bit para escrita e um bit para execução.

Tabela de comparativa de permissões em arquivos e diretórios.
É importante deixar bem claro que a criação e a remoção de um arquivo/diretório depende exclusivamente da permissão de escrita que foi setada no diretório "PAI", pois o mapeamento de nome para o espaço de dados é armazenado nele.

Permissões de acesso especiais ou bits especiais

Além das permissões básicas ainda existem três permissões especiais que modificam o comportamento de arquivos e diretórios. São elas: setuid, setgid e sticky bit.

Detalharemos cada um deles a seguir.

Setuid

Esse bit especial é representado pela letra "s" no conjunto de bits destinados ao proprietário do arquivo (- --s --- ---). Tem como função fazer o ajuste das permissões de usuário durante a execução de um programa para o proprietário do arquivo. Isso significa que no momento em que o programa é executado, ele será executado como se o proprietário do arquivo o estivesse executando e não a o usuário que o executou.

A posição em que a letra "s" é a mesma posição do bit básico de execução (x). Você deve estar se perguntando, como saberei se o bit de execução esta ativado? É bem simples, quando tivermos a letra "s" minúscula, significa que teremos ativado além do setuid o bit de execução, mas se "S" for maiúsculo significa que apenas teremos setuid ativado.

Devemos ter muito cuidado ao ligarmos o Setuid em arquivos (scripts) onde o proprietário é o root, porque isso pode trazer problemas sérios de segurança, já que durante da execução o script ele executado como se o "superuser" o fizesse.

Quando nos referimos a diretórios o setuid não tem nenhuma funcionalidade.

Em formato octal, é representado por: 4000

Setgid

Esse bit especial tem a mesma funcionalidade do setuid no que se refere a arquivos, sua representação também é um "s" (- --- --s ---), quando trabalha em conjunto com o bit de execução. Da mesma forma que o setuid, ele é representação por um "S" maiúsculo quando o bit de execução não esta ativado.

Ao ativarmos o setgid em diretórios, ele tem uma funcionalidade bem interessante. Todos os arquivos ou diretórios criados dentro dele, passam a ignorar o grupo padrão do usuário e pertencer ao mesmo grupo do diretório "pai".

Em formato octal, é representado por: 2000

Sticky bit

Sua funcionalidade para arquivos era salvar uma imagem do programa na swap, fazendo com que ele fosse carregado com mais velocidade. Hoje em dia ela tornou-se obsoleta e os sistemas atuais a ignoram.

Quando ativado em um diretório, faz com que só o proprietário do arquivo ou diretório consiga os remover ou editar.

Sua representação e feita através do caractere "t" ( - --- --- --t , bit de execução esta ativado) e "T" ( - --- --- --T , bit de execução não ativado).

Um bom exemplo da utilização desse bit é o /tmp, esse diretório é utilizado por programas/usuários para criar arquivos e diretórios temporários.

Em formato octal, é representado por: 1000

Tabela demonstrativa bits especiais:

Umask

São as permissões iniciais que um arquivo/diretório. Isto significa que a "umask" é responsável pelas permissões no momento da criação do arquivo ou diretório. Ao digitarmos "umask" sem acrescentarmos nenhum parâmetro, teremos como resultado do valor atual dela.

O comportamento na criação de arquivos texto e binários é diferente. Conforme demonstrado na tabela a seguir
O valor padrão da umask é 022 na maioria das distribuições que estão atualmente no mercado. Ao se modificar a umask de um usuário temos que ter muito cuidado, pois podemos causar problemas de acesso de arquivos/diretórios.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Conjunto de permissões
   3. Permissões de acesso
   4. Manipulando as permissões
Outros artigos deste autor

Como gerenciar usuários e grupos

Desvendando as regras de Firewall Linux Iptables

Leitura recomendada

Debian Squeeze Backports

Pilha de Diretórios (comandos pushd, popd e dirs)

Instalando o Fedore Core 4

Debian Constantly Usable Testing (CUT)

Uma geral acerca do WindowMaker

  
Comentários
[1] Comentário enviado por nicolo em 11/05/2010 - 10:44h

Sugiro o comando
sudo nautilus --browser
Botão direito do mouse na pasta ou arquivo
Escolha propriedades e permissões.
Pode mudar o que quiser sem saber letra nenhuma.- Muito melhor que o Windows.

[2] Comentário enviado por dastyler em 11/05/2010 - 11:53h

nicolo,

E se vc estiver usando um server sem interface gráfica? Como seria? :-P

hehehehe:D:D:D

[]´s

[3] Comentário enviado por amsouza em 11/05/2010 - 12:11h

Olá nicolo,
Em se tratando de interface gráfica você pode usar este recurso, contudo minha intenção é mostrar como você gerencia as permissões tanto na interface texto, quanto na gráfica.

É mostrar como o gerenciamento de permissões é feito, entendeu?

E dastyler, muito obrigado pela colocação.

Abraços,

Armando

[4] Comentário enviado por maran em 11/05/2010 - 14:54h

Muito bom o artigo,
mais achei que teria mais didatica, não que não tinha apenas, mais exercicios ou exemplos,
afinal se propos a tirar todas as duvidas, no indice do artigo e achei que ficou um pouco, vago esta parte:

Caso alguem tambem queira outras fontes segue um artigo que fiz do genero:

http://www.vivaolinux.com.br/artigo/Leia-grave-e-execute/

Abraço e parabéns ao autor

[5] Comentário enviado por amsouza em 11/05/2010 - 16:11h

Olá maran,

Em primeiro lugar, obrigado pelo comentário! Agora gostaria de saber qual foi a parte que ficou vaga, pois no caso de eu ter deixado passar algo ou até mesmo expressado de forma vaga, tenho a possibilidade de ajustar.

Ahh... e muito bom seu artigo! =D

Abraços,

Armando

[6] Comentário enviado por murderb13 em 12/05/2010 - 13:02h

otimo artigo..

descreve detalhadamente oq estamos fazendo com as permissões...num fika só ensinando
chmod 777

parabéns autor.!

[7] Comentário enviado por amsouza em 12/05/2010 - 13:59h

Olá murderb13,

Obrigado pelo comentário.

Abraços

Armando

[8] Comentário enviado por heepz em 18/02/2011 - 13:04h

Uma dúvida quando aparece drwxr:

d indica que é diretório
r leitura
w escrita
x execução

e o último "r" é o que ????

[9] Comentário enviado por amsouza em 18/02/2011 - 13:36h

Olá heepz,

Vamos lá.... quando executamos o comando ls -l, e olharmos da esqueda para a direita, veremos uma seguencia inicial de 10 bits, que significam:

bit 1 --> tipo de arquivo (se é um diretório, link simbólico, arquivo regular etc)
do bit 2 ao 4 --> permissão do usuário dono dos arquivo/direitorio
do bit 5 ao 7 --> são as permissões do grupo a que pertence o arquivo/direitório
do bit 8 ao 10 --> são as permissões conhecidas como os outros, isto é, se não for dono ou pertencer ao grupo dono do arquivo ou diretório as permissões que incidirão serão as desse conjunto de bits.

Então, respondendo sua pergunta... você apresentou 5bits "drwxr"

d --> bit de tipo
rwx --> bits referentes ao dono do arquivo/diretório
r --> bit de leitura do grupo dono do arquivo/diretório.

provavelmente você tem ainda na sequencia aos valores de wx do conjunto de permissões de grupo e rwx dos outros. O que pode estar acontecendo é que o arquivo/diretório não tenha essas permissões e no lugar de rwx, apareça apenas --- (ausência de permissões).

Espero ter ajudado e fico a disposição para quaisquer esclarecimentos,

Abrs,

Armando



[10] Comentário enviado por iagorafael em 28/02/2013 - 17:45h

poderia dar um exemplo criando um usuário??

[11] Comentário enviado por amsouza em 01/03/2013 - 11:55h

Olá iagorafael,

Quando criamos um usuário é importante ter em mente que as permissões que cada arquivo / diretório criado, tem como base a "umask". Isso significa que as permissões no momento da criação do arquivo / diretório, fica completamente transparente ao administrador.

Não sei se entendi corretamente sua pergunta, mas de qualquer forma me informe e detalhe se sua dúvida persistir, abs,

Armando

[12] Comentário enviado por noitso em 24/02/2015 - 16:19h

Muito bom, realmente da para leigos entenderem.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts