Permissões no Linux (chmod) – rwx, chmod, sudo | Linux
- Permissões no Linux (chmod) –
rwx,chmod,sudo| Linux
🔐 Visão Geral
O Linux usa um sistema de permissões baseado em três letras principais:
r→ read (leitura)w→ write (escrita)x→ execute (execução)
Essas permissões são aplicadas a três tipos de usuários:
| Categoria | Significado |
|---|---|
| u | dono (user) |
| g | grupo (group) |
| o | outros (others) |
📁 Como visualizar permissões
Use:
ls -l nome_arquivo
Exemplo de saída:
-rwxr-xr--
Interpretação rápida:
| Posição | Exemplo | Significado |
|---|---|---|
| 1 | - | Tipo: - = arquivo, d = diretório, l = link |
| 2-4 | rwx | Permissões do dono (user) |
| 5-7 | r-x | Permissões do grupo |
| 8-10 | r-- | Permissões de outros usuários |
📊 Tabela de Permissões – Leitura Fácil
| Símbolo | Valor Octal | Permissão |
|---|---|---|
r | 4 | Leitura |
w | 2 | Escrita |
x | 1 | Execução |
- | 0 | Sem permissão |
Permissões são somadas para gerar os números do modo octal:
| rwx | Valor |
|---|---|
| --- | 0 |
| --x | 1 |
| -w- | 2 |
| -wx | 3 |
| r-- | 4 |
| r-x | 5 |
| rw- | 6 |
| rwx | 7 |
🔧 Comando chmod — mudar permissões
O chmod (change mode) altera as permissões de arquivos e diretórios.
🔹 Modo simbólico
Sintaxe:
chmod [u|g|o|a][+|-|=][rwx] arquivo
| Símbolo | Significado |
|---|---|
u | usuário (dono) |
g | grupo |
o | outros |
a | todos (u+g+o) |
+ | adiciona permissão |
- | remove permissão |
= | define permissão fixa |
Exemplos:
chmod u+x script.sh # adiciona execução para o dono
chmod g-w arquivo.txt # remove escrita do grupo
chmod o= arquivo.log # remove todas permissões dos outros
🔹 Modo numérico (octal)
Cada grupo de permissões (user, group, other) vira um número de 0 a 7.
Sintaxe:
chmod XYZ arquivo
| X | Permissões do dono | | Y | Permissões do grupo | | Z | Permissões de outros |
Exemplos:
chmod 755 programa.sh # dono rwx (7), grupo r-x (5), outros r-x (5)
chmod 644 documento.txt # dono rw- (6), grupo r-- (4), outros r-- (4)
chmod 700 segredo.txt # só o dono pode acessar
🎖 Bits Especiais
| Bit | Octal | Significado |
|---|---|---|
| setuid | 4xxx | Executa com permissões do dono |
| setgid | 2xxx | Arquivos herdam grupo do diretório |
| sticky | 1xxx | Impede que outros apaguem arquivos |
Exemplos:
chmod 4755 binario_suid # setuid + rwxr-xr-x
chmod 2770 pasta # setgid no diretório
chmod 1777 /tmp # sticky bit para diretório público
🗂 Permissões em Diretórios
| Permissão | Efeito |
|---|---|
r | Listar arquivos dentro do diretório |
w | Criar, renomear e deletar arquivos |
x | Entrar no diretório com cd |
🔍 Examinando o binário sudo
ls -l $(which sudo)
Exemplo de saída:
-rwsr-xr-x 1 root root ... /usr/bin/sudo
| Campo | Significado |
|---|---|
rws (posição 2–4) | Permissões do dono: leitura (r), escrita (w) e execução com privilégios do dono (s = SUID ativo) |
| Dono e grupo | Ambos são root, indicando que o binário será executado com privilégios de superusuário |
| Caminho | É o binário /usr/bin/sudo, utilizado para executar comandos com privilégios elevados |
🔐 Importante: o bit
sno lugar doxindica que o binário possui o SUID ativado, ou seja, mesmo um usuário comum que execute esse programa o fará com privilégios de root. Esse comportamento é fundamental para o funcionamento dosudo, mas também representa um alto risco de segurança se a versão for vulnerável (por exemplo, a CVE-2023-22809).
🛠️ Opções úteis do chmod
| Opção | Descrição |
|---|---|
-R | Aplica recursivamente |
-v | Mostra as alterações |
-f | Oculta mensagens de erro |
--reference=ARQ | Usa as permissões de outro arquivo |
💡 Exemplos práticos
chmod 750 projeto.sh # rwx para dono, r-x para grupo, nada para outros
chmod u=rwx,g=rx,o= arquivo.txt # mesmo que 750
chmod -R 755 /var/www # aplica recursivamente a pastas e arquivos
👤 Dicas sobre usuários
Alterar senha de um usuário:
sudo passwd nome_usuario
Ver grupos existentes no sistema:
cat /etc/group