Skip to main content

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:

  • rread (leitura)
  • wwrite (escrita)
  • xexecute (execução)

Essas permissões são aplicadas a três tipos de usuários:

CategoriaSignificado
udono (user)
ggrupo (group)
ooutros (others)

📁 Como visualizar permissões

Use:

ls -l nome_arquivo

Exemplo de saída:

-rwxr-xr--

Interpretação rápida:

PosiçãoExemploSignificado
1-Tipo: - = arquivo, d = diretório, l = link
2-4rwxPermissões do dono (user)
5-7r-xPermissões do grupo
8-10r--Permissões de outros usuários

📊 Tabela de Permissões – Leitura Fácil

SímboloValor OctalPermissão
r4Leitura
w2Escrita
x1Execução
-0Sem permissão

Permissões são somadas para gerar os números do modo octal:

rwxValor
---0
--x1
-w-2
-wx3
r--4
r-x5
rw-6
rwx7

🔧 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ímboloSignificado
uusuário (dono)
ggrupo
ooutros
atodos (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

BitOctalSignificado
setuid4xxxExecuta com permissões do dono
setgid2xxxArquivos herdam grupo do diretório
sticky1xxxImpede 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ãoEfeito
rListar arquivos dentro do diretório
wCriar, renomear e deletar arquivos
xEntrar 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
CampoSignificado
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 grupoAmbos 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 s no lugar do x indica 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 do sudo, 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çãoDescrição
-RAplica recursivamente
-vMostra as alterações
-fOculta mensagens de erro
--reference=ARQUsa 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