Permissões no Linux: Aprenda Rápido e Evite Erros

Compartilhe:

três hexágonos e no centro de cada um imagens representando as permissões no linux para owner, group e ohter

Antes de configurar qualquer permissão no linux é mais importante entender como funcionam e são analisadas e aplicadas pelo sistema.

Entender as permissões previne problemas de segurança normalmente geradas por configurações erradas, e é vital para administrar servidores e ambientes de desenvolvimento.

A seguir você aprenderá em detalhes sobre as permissões no linux e o que fazem as permissões em arquivos e diretórios no linux.

Entendendo as permissões no linux

As permissões no linux são um mecanismo de controle de acesso que define quem pode fazer o quê com um arquivo ou diretório. Elas existem para proteger o sistema e os dados, evitando que usuários façam alterações indevidas.

A tabela a seguir lista as permissões usadas nas distribuições linux:

PermissõesRepresentação SimbólicaRepresentação BináriaRepresentação Octal
readr1004
writew0102
executee0011

Quando as permissões são representadas por números, isso é chamado de modo octal, quando são representadas por letras (rwx) é chamado de modo simbólico.

Para visualizar as permissões no linux utilize o comando ls com a opção -l, assim será mostrado na tela os metadados dos arquivos ou diretórios listados.

O exemplo abaixo lista as permissões do comando /usr/bin/egrep.

No segundo campo do comando ls é exibido uma sequência de caracteres (rwxr-xr-x) que são três conjuntos de permissões no modo simbólico.

  • 1º conjunto de permissões (rwx) são concedidas ao proprietário (owner) do arquivo ou diretório, no exemplo, o usuário root é o dono do arquivo (/usr/bin/egrep).
  • 2º conjunto de permissões (r-x) é aplicado aos membros do grupo proprietário (no exemplo: grupo root).
  • 3º conjunto (r-x) são as permissões atribuídas para os outros (other), ou seja, ao usuário que interage com o sistema e não é o usuário proprietário e nem membro do grupo proprietário.

Quando a permissão (r ou w ou x) é exibida significa que foi concedida, quando no seu lugar é mostrado o caractere “” (hífen) significa que a permissão não foi atribuída.

Não faz parte do escopo do post falar detalhadamente sobre o comando ls. Para ter mais informações sobre o comando ls recomendo a leitura do guia completo sobre comandos linux.

Como o sistema analisa e aplica as permissões ?

Ao tentar fazer uma ação no diretório ou arquivo, por exemplo, gravar no diretório ou visualizar o conteúdo de um arquivo, o sistema analisa as permissões para autorizar ou não a ação requerida, executando uma série de verificações:

Verifica se o usuário é o proprietário (owner) do arquivo ou diretório. Em caso afirmativo, o usuário recebe as permissões de proprietário e nenhuma outra verificação será realizada.

Se o usuário não for o proprietário, a próxima etapa é validar se ele é membro do grupo proprietário (group). Caso seja membro, o usuário terá concedida as permissões do grupo proprietário e nenhuma outra verificação será realizada.

Caso o usuário não seja nem o proprietário e nem membro do grupo proprietário, então as permissões para os outros (other) será aplicada.

Todos os arquivos e diretórios do linux tem um usuário proprietário e um grupo proprietário.

Também é importante saber que ao criar um novo arquivo ou diretório, o sistema configura a permissão de acordo com a umask. Para aprender mais sobre o comando umask recomendo a leitura do seu manual.

O que fazem as permissões em arquivos ?

As permissões em arquivos no linux controlam o acesso ao conteúdo do arquivo. Abaixo tem um detalhamento sobre o que as permissões no linux fazem em arquivos:

  • read (r): Permite abrir o arquivo e ler seu conteúdo, ela é essencial para fazer cópias de um arquivo, pois é necessário acessar o conteúdo do arquivo para criar uma duplicata.

Sem ela não é possível que editores de texto ou comandos como cat ou less visualizem o conteúdo de um arquivo.

  • write (w): É usada para modificar o conteúdo do arquivo ou sobrescrevê-lo. Note que, para arquivos, o “w” sozinho não permite deletar o arquivo (isso depende da permissão do diretório pai).
  • execute (x): Permite que o arquivo seja executado como um programa ou script (com código em bash ou python por exemplo) pelo sistema operacional.

Em alguns casos também é necessário combinar as permissões, por exemplo, para que um script seja executado o usuário geralmente precisa ter as permissões de read + execute (r-x).

Se você tiver apenas a permissão “x” (execute) sem a “r” (read), em muitos casos o interpretador (como o Bash ou Python) não conseguirá carregar o script para rodar.

A tabela a seguir mostra as formas de executar scripts, e as permissões necessárias:

Forma de executar o scriptPrecisa da permissão executePrecisa da permissão read
./script.shSimSim
bash script.shNãoSim

O programa que interpreta o código precisa ler as instruções do arquivo antes de conseguir executá-las, por isso que é necessário a permissão read (leitura) atribuída ao script.

Para binários compilados, por exemplo os comandos ls, cp e mkdir, basta ter a permissão de execução (x), pois o kernel lê o código binário ao carregá-lo.

O que fazem as permissões em diretórios ?

Entenda que as permissões em diretórios são interpretadas de forma diferente das permissões em arquivos. Veja o que cada permissão permite fazer em um diretório:

  • read (r): Permite listar o conteúdo do diretório, por exemplo, ao usar o comando ls. Sem a permissão “r” (read), você não consegue ver quais arquivos estão lá dentro.
  • write (w): Autoriza criar, deletar ou renomear arquivos e subdiretórios dentro da pasta. Tome cuidado, porque se o diretório tem permissão “w” (write) é possível deletar o que está dentro, como arquivos, mesmo que não seja o dono deles.

Portanto, você precisa de permissão de escrita em um diretório para mover ou remover arquivos dele.

  • execute (x): Permite acessar o diretório, sem a permissão “x” (execute), você está bloqueado de acessar qualquer subpasta ou arquivo dentro do diretório.

Diferente dos arquivos, as permissões em diretórios quase sempre precisam trabalhar juntas para serem úteis:

Combinação de Read + Execute (r-x)

Esta é a configuração padrão para maioria das pastas do sistema e é normalmente atribuída ao grupo e outros. Ela permite que o usuário liste o conteúdo do diretório e entre nele para ler os documentos que estão dentro.

Sem a permissão de acesso (x), o “r” (read) permite apenas ver os nomes dos arquivos, mas você não conseguiria abrir nenhum deles por que não tem acesso ao conteúdo da pasta.

Combinação de Write + Execute (-wx)

Um cenário curioso: se você tiver permissão de escrita e execução, mas não de leitura, você pode criar arquivos dentro da pasta e entrar nela, mas não consegue listar o que já existe lá (o comando ls falha).

É como uma “caixa de sugestões” onde você deposita algo, mas não vê o que os outros colocaram.

Como alterar as permissões no linux ?

Para alterar as permissões no linux, utilizamos o comando chmod, e para saber utilizá-lo recomendo a leitura do guia completo sobre o comando chmod para definir as permissões.

Comando chmod: Aprenda a alterar permissões facilmente

Guia completo para aprender o comando chmod


O Motivo de dedicar um guia completo é porque o comando chmod exige muita explicação e exemplos práticos conforme encontrará no guia.

Conclusão

Entender e saber usar as permissões no linux é a base para manter os arquivos seguros. Vimos como os níveis de acesso (r, w, x) controlam quem pode ler, editar ou executar seus dados.

Também foi explicado como sistema analisa a quem será aplicada a permissão e como a permissão execute (x) tem ações diferentes em arquivos e diretórios.

Ficou com alguma dúvida ? Deixe seu comentário abaixo, pois seu feedback ajuda muito.

Perguntas Frequentes (FAQ) sobre Permissões Linux

O que significa a permissão 777 ?

A permissão 777 concede acesso total (leitura, escrita e execução) para o dono, grupo e todos os outros usuários do sistema. Deve ser usada somente se houver necessidade.

Como vejo as permissões atuais de um arquivo ?

Basta utilizar o comando ls -l na linha de comando do linux. O sistema exibirá uma string de dez caracteres (ex: -rwxr-xr–) o primeiro representa o tipo do arquivo e na sequência os três conjuntos de permissões.

O que faz a permissão 600 em arquivos e diretórios ?

Ao conceder a permissão 600 a um arquivo, somente o dono (owner) do arquivo poderá visualizar e alterar seu conteúdo. Em um diretório, somente o dono do diretório poderá listar o conteúdo da pasta e gravar nela.

Por que não consigo deletar um arquivo se tenho permissão de escrita (w) nele ?

Porque a permissão para excluir um arquivo é controlada pelo diretório onde ele está guardado. Você precisa de permissão de escrita no diretório que armazena o arquivo para removê-lo.

O que acontece se eu der permissão de execução (x) a um arquivo de texto comum ? 

Se o conteúdo não for um script ou um binário, você receberá uma mensagem de erro ao tentar executá-lo.

Navegue por tópicos:

Foto de Edson Oliveira
Edson Oliveira

Especialista em Linux, trabalhando com TI tem experiência no gerenciamento, solução de problemas e suporte de servidores linux em ambientes corporativos.

Professor de cursos voltados a linux, tecnologias open source e certificações LPI. Possui as certificações LPIC-1, LPIC-2 e LPIC-3 (Mixed Environment).

Navegue por tópicos:

Você também pode gostar:

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Valorizamos sua privacidade

Utilizamos cookies para aprimorar sua experiência de navegação, exibir anúncios ou conteúdo personalizado e analisar nosso tráfego. Ao clicar no botão “Aceitar todos”, você concorda com nosso uso de cookies.

Para mais informações leia nossa Política de Privacidade.