Permissões no Linux: Entenda chmod, chown, grupos e permissões

setembro 1, 2026 · 11 min de leitura · Luiz Seabra

Permissões no Linux: Entenda chmod, chown, Grupos e Permissões

No Linux, a segurança é construída sobre uma base sólida de permissões de acesso. Diferente de sistemas operacionais voltados exclusivamente para o uso doméstico simplificado, o Linux foi projetado desde o início como um sistema multiusuário e multitarefa. Isso significa que o sistema precisa saber exatamente quem pode ler um arquivo, quem pode alterá-lo e quem pode executá-lo como um programa.

Entender permissões não é apenas uma tarefa técnica para Administradores de Sistemas (SysAdmins); é uma habilidade de sobrevivência para desenvolvedores, profissionais de DevOps e entusiastas de Homelab. Sem esse conhecimento, você se verá preso em erros de “Permission denied” ou, pior, deixará seu sistema vulnerável a ataques por conceder acesso excessivo a arquivos sensíveis.

Neste guia profundo do portal BITTUX, vamos desmistificar o funcionamento das permissões, do básico ao avançado.


O que você vai aprender

  • A hierarquia de Usuários, Grupos e Outros (UGO).
  • O significado prático de Leitura, Escrita e Execução (rwx).
  • As diferenças cruciais entre permissões em arquivos vs. diretórios.
  • Como alterar permissões usando o comando chmod (modos simbólico e octal).
  • Como alterar a posse de arquivos com chown e chgrp.
  • O papel do umask na criação de novos arquivos.
  • Bits especiais de segurança: SUID, SGID e Sticky Bit.
  • Troubleshooting de erros comuns de acesso.
  • Melhores práticas de segurança baseadas no princípio do menor privilégio.

Pré-requisitos

  • Um sistema Linux funcional (Ubuntu, Debian, CentOS, etc.).
  • Acesso ao terminal.
  • Usuário com privilégios de sudo para realizar alterações administrativas.
  • Conhecimento básico de navegação no terminal (se precisar, consulte o guia 01 primeiros passos linux terminal).

Conceitos fundamentais

Para dominar as permissões, precisamos primeiro entender para quem elas são atribuídas e o que cada uma delas faz.

1. As três classes de usuários (UGO)

Todo arquivo ou diretório no Linux possui três níveis de atribuição de acesso:

  1. Dono (User/Owner – u): O usuário que criou o arquivo ou aquele a quem a posse foi atribuída. Tem controle total sobre as permissões do próprio arquivo.
  2. Grupo (Group – g): Um conjunto de usuários que compartilham as mesmas permissões para aquele arquivo. Útil para colaboração em equipe.
  3. Outros (Others – o): Todos os demais usuários do sistema que não são o dono e não pertencem ao grupo do arquivo.

2. Os três tipos de permissão (rwx)

Cada uma das classes acima pode ter três tipos de acesso:

  • Leitura (Read – r): Permite ver o conteúdo do arquivo ou listar o conteúdo de um diretório.
  • Escrita (Write – w): Permite modificar o conteúdo de um arquivo ou criar/remover arquivos dentro de um diretório.
  • Execução (Execute – x): Permite rodar um arquivo como programa/script ou “atravessar” (entrar) em um diretório.

3. Diferença de rwx: Arquivos vs. Diretórios

Este é o ponto onde muitos iniciantes se confundem. A permissão tem comportamentos distintos dependendo do alvo:

Permissão Em um Arquivo Em um Diretório
r (Read) Ler o conteúdo (ex: cat, less) Listar arquivos internos (ex: ls)
w (Write) Alterar/salvar o arquivo (ex: nano, vim) Criar, renomear ou deletar arquivos dentro dele
x (Execute) Executar como binário ou script Entrar na pasta (cd) e acessar metadados de arquivos

Dica técnica: Para um usuário conseguir deletar um arquivo dentro de uma pasta, ele precisa de permissão de escrita (w) no diretório, mesmo que ele não tenha permissão nenhuma no arquivo em si.


Preparação do ambiente

Vamos criar um ambiente de testes isolado para não afetar arquivos importantes do sistema.

Passo 1: Criar diretório de laboratório

mkdir -p ~/lab-permissoes
cd ~/lab-permissoes

Passo 2: Criar arquivos de teste

touch publico.txt privado.txt script.sh

Motivo: Ter arquivos com diferentes propósitos nos ajuda a visualizar como as permissões impactam o acesso real.


Tutorial passo a passo

Passo 1: Analisar as permissões atuais

Use o comando ls -l para ver a “radiografia” do arquivo.

ls -l publico.txt

O resultado esperado é algo como:
-rw-r--r-- 1 usuario grupo 0 Sep 1 10:00 publico.txt

Explicação da string de permissões (-rw-r--r--):
– O 1º caractere indica o tipo (- para arquivo, d para diretório, l para link).
– Os próximos 3 (rw-) são as permissões do Dono.
– Os 3 seguintes (r--) são as permissões do Grupo.
– Os últimos 3 (r--) são as permissões de Outros.


Passo 2: Alterar permissões com chmod (Modo Simbólico)

O modo simbólico usa letras e operadores para adicionar (+), remover (-) ou definir (=) permissões.

Objetivo: Dar permissão de execução para o dono no arquivo script.sh

chmod u+x script.sh

Objetivo: Remover permissão de leitura para o grupo e outros no arquivo privado.txt

chmod go-r privado.txt

Objetivo: Definir permissão exata (leitura e escrita para o dono, nada para o resto)

chmod u=rw,go= privado.txt

Explicação: O modo simbólico é intuitivo para alterações rápidas em bits específicos sem precisar calcular valores.


Passo 3: Alterar permissões com chmod (Modo Octal)

O modo octal usa números de 0 a 7 para representar as combinações de permissões. É o método preferido em documentações técnicas e automação.

A tabela de valores:
– 4: Read (r)
– 2: Write (w)
– 1: Execute (x)
– 0: Nenhuma permissão

Soma das combinações:
– 7 (4+2+1) = rwx
– 6 (4+2) = rw-
– 5 (4+1) = r-x
– 4 = r–

Objetivo: Definir permissão “Padrão Web” (Dono tudo, resto só ler/executar)

chmod 755 publico.txt

Objetivo: Definir permissão restrita (Dono lê/escreve, ninguém mais faz nada)

chmod 600 privado.txt

Resultado esperado: Ao rodar ls -l, o arquivo privado.txt deve exibir -rw-------.


Passo 4: Alterar Dono e Grupo com chown e chgrp

Muitas vezes, o erro de permissão ocorre porque o arquivo pertence ao usuário errado (comum ao usar sudo para criar arquivos em sua /home).

Objetivo: Mudar o dono de um arquivo para o root (requer sudo)

sudo chown root publico.txt

Objetivo: Mudar o dono e o grupo simultaneamente

sudo chown usuario:www-data publico.txt

Objetivo: Mudar recursivamente em uma pasta inteira

sudo chown -R usuario:usuario ~/lab-permissoes

Explicação: O chown (change owner) é a ferramenta definitiva para corrigir problemas de posse. A flag -R (recursive) aplica a mudança a todos os arquivos e subpastas.


Passo 5: Entendendo o umask

O umask define quais permissões serão retiradas de um arquivo no momento em que ele é criado.

umask

Se o seu umask for 0022, arquivos novos nascerão com 644 (666 – 022) e diretórios com 755 (777 – 022).


Bits Especiais: SUID, SGID e Sticky Bit

Existem permissões avançadas que resolvem cenários específicos de administração.

1. SUID (Set User ID) – Valor Octal 4000

Quando aplicado a um executável, o programa roda com os privilégios do dono do arquivo, não do usuário que o chamou.
– Exemplo clássico: O comando passwd tem SUID para que usuários comuns possam alterar suas senhas no arquivo /etc/shadow (que pertence ao root).
– Risco: Um binário com SUID e falhas de segurança pode ser usado para escalada de privilégios.

2. SGID (Set Group ID) – Valor Octal 2000

Em diretórios, garante que novos arquivos criados dentro dele herdem o grupo da pasta pai, facilitando o compartilhamento em pastas de equipe.

3. Sticky Bit – Valor Octal 1000

Em diretórios, impede que um usuário delete arquivos de outros usuários, mesmo que ele tenha permissão de escrita na pasta.
– Exemplo clássico: O diretório /tmp. Todo mundo pode escrever lá, mas você só deleta o que é seu.


Laboratório prático: Criando uma pasta compartilhada segura

Vamos simular um ambiente onde vários desenvolvedores precisam trabalhar na mesma pasta.

Cenário

Criar uma pasta /srv/projeto onde:
1. O grupo desenvolvedores tenha acesso total.
2. Novos arquivos sempre pertençam ao grupo desenvolvedores (SGID).
3. Ninguém consiga deletar o arquivo do colega (Sticky Bit).

Execução:

# 1. Criar o grupo (se não existir)
sudo groupadd desenvolvedores

# 2. Criar a pasta e ajustar o grupo
sudo mkdir -p /srv/projeto
sudo chgrp desenvolvedores /srv/projeto

# 3. Aplicar permissões: rwx para dono e grupo, nada para outros
# E aplicar SGID (2) e Sticky Bit (1) -> Soma 3 no prefixo
sudo chmod 3770 /srv/projeto

# 4. Verificar resultado
ls -ld /srv/projeto

Resultado esperado: A saída deve mostrar drwxrws--t. O s no grupo indica SGID e o t no final indica Sticky Bit.


Troubleshooting: problemas comuns e como resolver

1. Erro “Permission denied” ao rodar um script

Sintoma

Você tenta rodar ./meuscript.sh e recebe erro de permissão, mesmo sendo o dono.

Possível causa

O arquivo não tem o bit de execução (x) ativo.

Diagnóstico

ls -l meuscript.sh mostra -rw-r--r--.

Solução

Adicione permissão de execução: chmod +x meuscript.sh.


2. Erro “Operation not permitted” ao usar chown

Sintoma

Você tenta mudar o dono de um arquivo seu e o sistema nega.

Possível causa

Apenas o superusuário (root) pode dar a posse de um arquivo para outra pessoa no Linux. Isso evita que usuários “escondam” arquivos maliciosos na conta de outros.

Solução

Use sudo chown ....


3. Arquivo criado por um usuário não pode ser editado pelo grupo na pasta compartilhada

Sintoma

Mesmo com SGID, o arquivo nasce com permissão 644 e o colega de grupo não consegue editar.

Possível causa

O umask do usuário que criou o arquivo é muito restritivo (provavelmente 022).

Solução

O usuário deve ajustar seu umask para 002 ou usar ACLs (Access Control Lists) para permissões mais granulares.


Segurança e Boas Práticas

  • Princípio do Menor Privilégio: Nunca dê permissão 777 (leitura, escrita e execução para todos) para resolver um problema de acesso. Descubra qual é o grupo correto ou ajuste apenas o bit necessário.
  • Cuidado com chmod 777: Em servidores web, dar 777 em pastas de upload permite que um invasor envie e execute scripts maliciosos.
  • Auditoria de SUID: Verifique periodicamente se existem arquivos com SUID suspeitos no sistema:
    find / -perm /4000 -type f 2>/dev/null
  • Uso de Grupos: Em vez de dar permissões para “Outros”, crie grupos específicos para as tarefas e adicione os usuários a eles.
  • SSH e Chaves: Pastas .ssh e arquivos authorized_keys devem ter permissões estritas (700 e 600 respectivamente), caso contrário, o serviço SSH recusará a conexão por segurança.

Conclusão

As permissões no Linux são a primeira linha de defesa do sistema. Dominar o chmod, chown e entender a matriz rwx permite que você configure ambientes seguros, colaborativos e profissionais. Lembre-se: o poder do sudo deve ser usado com responsabilidade, e a compreensão dos bits especiais pode elevar sua administração de sistemas a um novo nível.


Próximos passos / Continue estudando

  • 03 systemd linux — Systemd na Prática: Veja como as permissões impactam a execução de serviços e como definir o usuário de um serviço.
  • 04 ssh linux — Acesso Remoto Seguro com SSH: Aprenda as permissões críticas necessárias para chaves SSH.
  • 01 primeiros passos linux terminal — Revisão de Terminal: Se sentiu dificuldade com algum comando básico, volte ao guia de introdução.

Perguntas frequentes (FAQ)

Qual a diferença entre chmod 7 e chmod 007?

Nenhuma. O Linux assume zeros à esquerda se você fornecer apenas um dígito. No entanto, é boa prática usar três dígitos (755) ou quatro (0755) quando bits especiais estão envolvidos.

Por que não consigo deletar um arquivo se tenho permissão rwx nele?

Porque a permissão para deletar arquivos reside no diretório pai, não no arquivo em si. Você precisa de permissão de escrita (w) na pasta onde o arquivo está localizado.

O que significa o sinal de mais (+) ou ponto (.) ao final das permissões no ls -l?

Um . indica um contexto de segurança SELinux aplicado. Um + indica que o arquivo possui ACLs (Access Control Lists) estendidas, que permitem permissões mais complexas para múltiplos usuários e grupos simultâneos.

Próximo passo

Agora que você domina Permissoes No Linux, o próximo passo lógico da nossa trilha de aprendizado é continuar desenvolvendo suas habilidades.

→ Continue: Systemd na Prática

Artigos relacionados

Estes artigos complementam o conteúdo apresentado:

Deixe um comentário

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

Rolar para cima