5.3 — Permissões e donos de arquivosTópico 5: Segurança e permissões de arquivospeso 5
O que você precisa entender
Esse é provavelmente o subtópico mais importante de toda a certificação. Todo arquivo tem um dono, um grupo, e permissões de leitura/escrita/execução para três categorias: dono, grupo, outros.
Lendo a saída de ls -l
-rwxr-xr-- 1 joao devs 4096 Jan 10 10:00 script.sh
| Parte | Significado |
|---|---|
- (1º caractere) |
Tipo: -=arquivo, d=diretório, l=link simbólico |
rwx |
Permissões do dono (joao): ler, escrever, executar |
r-x |
Permissões do grupo (devs): ler, executar (sem escrever) |
r-- |
Permissões de outros: só ler |
joao |
Usuário dono |
devs |
Grupo dono |
Os 3 tipos de permissão
| Letra | Em arquivo | Em diretório |
|---|---|---|
r (read) |
Ler o conteúdo | Listar o conteúdo (ls) |
w (write) |
Modificar o conteúdo | Criar/remover arquivos dentro |
x (execute) |
Executar como programa/script | Entrar no diretório (cd) |
Notação numérica (octal) — cai muito na prova
Cada permissão vale um número: r=4, w=2, x=1. Soma-se pra cada categoria.
| Número | Permissões | Significado |
|---|---|---|
| 7 | rwx | ler+escrever+executar |
| 6 | rw- | ler+escrever |
| 5 | r-x | ler+executar |
| 4 | r-- | só ler |
| 0 | --- | nada |
Exemplo: chmod 755 script.sh = dono: rwx(7), grupo: r-x(5), outros: r-x(5).
Exemplo: chmod 644 arquivo.txt = dono: rw-(6), grupo: r--(4), outros: r--(4) — o padrão pra arquivos comuns.
chmod — mudar permissões
chmod 755 script.sh # notação numérica (a mais cobrada)
chmod u+x script.sh # notação simbólica: adiciona execução pro dono (u=user)
chmod g-w arquivo.txt # remove escrita do grupo (g=group)
chmod o=r arquivo.txt # define outros (o=other) como só leitura
chmod a+r arquivo.txt # a=all (todos: dono+grupo+outros)
chmod -R 755 pasta/ # -R = recursivo, aplica em tudo dentro da pasta
chown e chgrp — mudar dono/grupo
chown novodono arquivo.txt # muda só o dono
chown novodono:novogrupo arquivo.txt # muda dono E grupo de uma vez
chown :novogrupo arquivo.txt # muda só o grupo (via chown)
chgrp novogrupo arquivo.txt # muda só o grupo (comando dedicado)
chown -R usuario:grupo pasta/ # recursivo
Termos-chave
- Dono (owner/user), grupo (group), outros (others)
r,w,x— read, write, execute- Notação octal (numérica) vs simbólica
-R— recursivo
Comandos para testar
# 1. Ver permissões detalhadas de um arquivo
ls -l /etc/passwd
# 2. Criar um arquivo e dar permissão de execução só pro dono
touch teste.sh
chmod 700 teste.sh
ls -l teste.sh
# 3. Mudar permissão usando notação simbólica
chmod u+x,g+r,o-r teste.sh
ls -l teste.sh
# 4. Mudar o dono de um arquivo (precisa de sudo geralmente)
sudo chown root teste.sh
# 5. Mudar dono E grupo ao mesmo tempo
sudo chown root:root teste.sh
📌 Exercício prático
Crie um arquivo chamado segredo.txt. Configure as permissões pra 640 usando chmod (dono lê/escreve, grupo só lê, outros nada) e confirme com ls -l. Depois calcule de cabeça: qual seria o comando chmod numérico pra um script que o dono pode ler/escrever/executar, o grupo só pode ler/executar, e outros não têm acesso nenhum? Rode o comando e confira com ls -l.