Permissões no Linux – Entendendo o chmod

O comando chmod é muito utilizado no dia a dia de um usuário Linux, seja ele um usuário comum ou até mesmo um SysAdmin. O objetivo deste artigo é trazer informações de maneira simples sobre o funcionamento do comando chmod e o que significam as famosas “letrinhas” drwxrwxrwx que são mostradas como saída de um comando “ls -lh” em um diretório no terminal Linux.

Para iniciarmos nosso artigo, vamos primeiramente entender o significado de cada uma destas letras. No exemplo abaixo demonstraremos um print screen do diretório Fotos:

Vamos tomar como exemplo a linha do diretório em Azul chamado arquivo:

drwxrwxr-x

  1. d: tipo de arquivo (diretório);
  2. rwx: permissões do proprietário e/ou usuário;
  3. rwx : permissões para usuários do mesmo grupo;
  4. rwx: permissões para todos usuários.

Leia Mais:

Proxmox VE – O Sistema de Virtualização Robusto e OpenSource!
19 Comandos Cruciais Do Linux A Saber
5 práticas para manter seguro o SSH do Linux
Integrando CentOS ao Active Directory
Como instalar o FileZilla no Linux manualmente

1 – Se o objeto listado for um diretório, as permissões representadas pelas “letrinhas” sempre iniciarão com a letra d (1ª Posição). Se o objeto for um arquivo, a letra d será ocultada do início das “letrinhas” e será exibido um hífen ( ) no lugar.

2 – O proprietário do arquivo possui suas permissões representadas pelas letras sequenciais rwx (2ª, 3ª e 4ª posição), onde:

  • r read (permissão de leitura);
  • w write (permissão de escrita);
  • x execute (permissão de execução)

3 – Os usuários que pertencem ao mesmo grupo que o usuário proprietário do arquivo, tem suas permissões representadas pelas letras rwx que ocupam a (5ª, 6ª e 7ª posição), onde:

Logo, os usuários que fazem parte do grupo joaopaulo possuem as permissões sobre o diretório arquivo:

  • r read (permissão de leitura);
  • w write (permissão de escrita);
  • x execute (permissão de execução)

#DicaProfissa: Faça um curso profissionalizante!
Garanta um curso certificado na área de TI e Software pela plataforma de estudos online Udemy.
Clique aqui e confira todos os cursos mais recentes em tecnologia!

Para entender melhor sobre este conceito de permissões de grupo, vamos dar uma revisada básica sobre a criação de usuários no Linux. 

Sempre que um novo usuário é adicionado no sistema Linux, haverá um grupo sendo criado automaticamente pelo sistema para o usuário adicionado, contendo o mesmo nome. 

Em nosso exemplo, ao listarmos o conteúdo do diretório /Documentos/Fotos, note que é exibido o nome do usuário proprietário do arquivo e do grupo cujo o qual o usuário pertence:

A coluna da esquerda representa o nome do usuário e a coluna da direita representa o nome do grupo cujo o qual o usuário faz parte.

Ao adicionar um novo usuário ao grupo joaopaulo, o usuário adicionado ao grupo passará a ter as permissões para manipular os arquivos cujo grupo joaopaulo tenha as permissões de acesso.

4 – As posições ocupadas pelas 8ª, 9ª e 10ª letras, representam as permissões para todos os demais usuários do sistema sob o objeto listado. Neste caso:

Onde:

  • r read (todos os demais usuários do sistema possuem a permissão de leitura);
  • – no write (não escrita, quando a posição de escrita representada por W é ocultada e substituída por um hífen -, significa que todos os demais usuários do sistema não possuem permissão de escrita, salvo usuário root e usuários com poderes de root);
  • x execute (todos os demais usuários do sistema possuem permissão de execução);

Até agora aprendemos o significado de todas as letras que constituem o conjunto de permissões de arquivos e diretórios no sistema Linux. Este aprendizado é essencial para entendermos o funcionamento do comando CHMOD.

#DicaProfissa: Faça um curso profissionalizante!
Garanta um curso certificado na área de TI e Software pela plataforma de estudos online Udemy.
Clique aqui e confira todos os cursos mais recentes em tecnologia!

Então sem mais delongas, vamos lá!

Para ficar mais fácil o entendimento, vamos separar as permissões de um arquivo ou diretório Linux em 3 blocos. Continuaremos utilizando como exemplo o diretório arquivo exibido na saída do comando “ls -lh” em nosso exemplo anterior. Para exemplificar melhor, vamos separá-las aqui:

Onde:

d → representa se o objeto listado é um arquivo ou diretório;

1º bloco → representa as permissões do proprietário do arquivo ou diretório;

2º bloco → representa as permissões do grupo;

3º bloco → representa as permissões dos demais usuários;

O CHMOD trabalha com valores decimais que vão de 0 á 7 para setar as permissões de arquivos e diretórios no linux. Cada valor é representado por:

0 : (nenhuma permissão)

1 : –x (somente execução)

2 : -w- (somente escrita)

3 : -wx (escrita e execução)

4 : r– (somente leitura)

5 : r-x (leitura e execução)

6 : rw- (leitura e escrita)

7 : rwx (leitura, escrita e execução)

Em um exemplo prático, o número decimal que representa as permissões do diretório arquivo, utilizado como exemplo desde o começo em nosso artigo é:

Se esta permissão fosse inserida manualmente pelo usuário, o número que representa a permissão do diretório arquivo é 0755. O comando CHMOD deve ser empregado da seguinte forma:

$ sudo chmod -R 0775 /Documentos/Fotos/arquivo

Como vimos acima, o número 755 representa:

  • Acesso total do proprietário do arquivo para leitura, escrita e execução (7).
  • Acesso total do grupo para leitura, escrita e gravação (7).
  • Acesso de leitura e execução pelos demais usuários do sistema (5).

#DicaProfissa: Faça um curso profissionalizante!
Garanta um curso certificado na área de TI e Software pela plataforma de estudos online Udemy.
Clique aqui e confira todos os cursos mais recentes em tecnologia!

Outro exemplo prático, caso quisermos alterar as permissões do diretório arquivo localizado em /mnt para que o proprietário possa somente ler e escrever, os usuários do mesmo grupo possam apenas ler e os demais usuários do sistema não tenham acesso:

Permissões atuais do diretório antes de realizarmos a alteração:

Escreveremos assim:

$ sudo chmod -R 0640 /mnt/arquivo

Onde: 

  • 6 →  apenas leitura e escrita;
  • 4 →  apenas leitura;
  • 0 → nenhuma permissão

Obtemos a seguinte saída:

Separando por blocos como no exemplo acima, podemos constatar:

Há a possibilidade de definirmos as permissões de um arquivo ou diretório como 0777  de forma que o proprietário do arquivo tenha permissões de leitura, escrita e execução, os usuários que pertencem ao grupo proprietário tenham permissões de leitura, escrita e execução e todos os demais usuários tenham as mesmas permissões de leitura, escrita e execução. Ou seja em resumo, permissão total para TODOS

Profissionalmente falando como um Engenheiro DevOps e Arquiteto de Soluções Linux, não recomenda-se esta prática para uso em servidores ou arquivos que estejam em ambientes de produção. Isto porque se o servidor que hospeda o site de sua empresa por exemplo ou um sistema de gerenciamento estiver com as permissões da pasta onde estão os arquivos como 0777, outros usuários poderão modificar os arquivos e até mesmo terem acesso a todo o conteúdo, podendo inclusive removê-lo. Por isso é necessário tomar bastante cuidado ao modificar as permissões do sistema, pois há alterações que em sistemas de produção possam causar danos irreparáveis.

Espero ter conseguido apresentar detalhadamente a todos o funcionamento das permissões nos sistemas Linux e esclarecer muitas das dúvidas do pessoal.

Este artigo foi produzido exclusivamente para o site dicasdeinfra.com.br por mim, João Paulo Scopel. Sua reprodução está autorizada desde que mantidos os direitos autorais ao criador e ao site dicasdeinfra.com.br.

Até a próxima!

REFERÊNCIAS E CRÉDITOS:

https://pt.wikipedia.org/wiki/Chmod

https://linux.die.net/man/1/chmod

João Paulo Scopel
João Paulo Scopel é graduado em Sistemas de Informação e profissional de Tecnologia da Informação há 10 anos. Atua como Analista de Tecnologia e Infraestrutura com ênfase em soluções Linux, é Consultor de Soluções Open-Source para empresas e é Colunista do Dicas de Infra.
pt_BRPortuguese

ATÉ 90% DE DESCONTO

DECOLE SUA CARREIRA!!

Quer dar um upgrade na sua carreira? 

Invista em você e saia na frente! Conquiste aquele emprego dos sonhos em 2022!