Capítulo 3.5 - Permissões de Arquivos
Objetivos de Aprendizagem
Ao final deste capítulo, você será capaz de:
- Compreender o sistema de permissões do Linux
- Ler e interpretar permissões
- Modificar permissões com chmod
- Alterar proprietário e grupo com chown
O que são Permissões?
As permissões no Linux controlam quem pode ler, escrever ou executar um arquivo. É um sistema de segurança fundamental.
Três níveis:
- Owner (Proprietário): Criador do arquivo
- Group (Grupo): Grupo proprietário
- Other (Outros): Todos os outros usuários
Tipos de Permissões
r (Read - Leitura)
Para arquivos:
- Ler o conteúdo
- Exibir com cat, less, etc.
Para diretórios:
- Listar o conteúdo (ls)
w (Write - Escrita)
Para arquivos:
- Modificar o conteúdo
- Sobrescrever o arquivo
Para diretórios:
- Criar arquivos
- Remover arquivos
x (Execute - Execução)
Para arquivos:
- Executar como programa
- Scripts, binários
Para diretórios:
- Acessar o diretório (cd)
- Necessário para navegar
Leitura das Permissões
Formato Longo (ls -l)
$ ls -l fichier.txt
-rwxr-xr-- 1 user group 1024 Jan 1 12:00 fichier.txt
Decomposição:
- rwx r-x r-- 1 user group 1024 Jan 1 12:00 fichier.txt
│ ││ ││ ││ │ │ │ │ │
│ ││ ││ ││ │ │ │ │ └─ Nome
│ ││ ││ ││ │ │ │ └────── Tamanho
│ ││ ││ ││ │ │ └──────────── Grupo
│ ││ ││ ││ │ └───────────────── Proprietário
│ ││ ││ ││ └─────────────────── Links
│ ││ ││ │└────────────────────── Outros: r--
│ ││ ││ └─────────────────────── Grupo: r-x
│ ││ │└────────────────────────── Proprietário: rwx
│ ││ └─────────────────────────── Tipo: - (arquivo)
│ └─────────────────────────────── Tipo: d (diretório), l (link)
Formato Octal
# rwx = 111 (binário) = 7 (decimal)
# r-x = 101 (binário) = 5 (decimal)
# r-- = 100 (binário) = 4 (decimal)
# Exemplo: rwxr-xr-- = 754
Correspondência:
r= 4w= 2x= 1-= 0
Exemplos:
rwx= 4+2+1 = 7r-x= 4+0+1 = 5r--= 4+0+0 = 4---= 0+0+0 = 0
Modificar Permissões (chmod)
Método Simbólico
# Adicionar permissões
chmod u+x fichier.txt # Proprietário: +x
chmod g+w fichier.txt # Grupo: +w
chmod o+r fichier.txt # Outros: +r
chmod a+x fichier.txt # Todos: +x
# Remover permissões
chmod u-x fichier.txt # Proprietário: -x
chmod g-w fichier.txt # Grupo: -w
# Definir permissões
chmod u=rwx fichier.txt # Proprietário: rwx
chmod g=rx fichier.txt # Grupo: r-x
chmod o=r fichier.txt # Outros: r--
# Combinações
chmod u+x,g+w fichier.txt
chmod u=rwx,g=rx,o=r fichier.txt
Símbolos:
u: User (proprietário)g: Group (grupo)o: Other (outros)a: All (todos)
Operadores:
+: Adicionar-: Remover=: Definir
Método Octal
# Formato: chmod ABC arquivo
# A = Proprietário, B = Grupo, C = Outros
chmod 755 fichier.txt # rwxr-xr-x
chmod 644 fichier.txt # rw-r--r--
chmod 600 fichier.txt # rw------- (privado)
chmod 777 fichier.txt # rwxrwxrwx (todos os direitos)
# Recursivo
chmod -R 755 repertoire/
Permissões comuns:
755: Executável (scripts, programas)644: Arquivos normais (leitura/escrita)600: Arquivos privados (somente proprietário)700: Diretório privado
Alterar Proprietário e Grupo (chown)
chown
# Alterar proprietário
chown user fichier.txt
# Alterar proprietário e grupo
chown user:group fichier.txt
# Alterar apenas o grupo
chown :group fichier.txt
chgrp group fichier.txt
# Recursivo
chown -R user:group repertoire/
Exemplos:
# Dar para user1
chown user1 fichier.txt
# Dar para user1, grupo users
chown user1:users fichier.txt
# Recursivo em um diretório
chown -R www-data:www-data /var/www/
Permissões Especiais
SUID (Set User ID)
Executar com as permissões do proprietário:
chmod u+s fichier
# Exemplo: /usr/bin/passwd (s no lugar de x)
SGID (Set Group ID)
Executar com as permissões do grupo:
chmod g+s fichier
Sticky Bit
Impede a remoção por outros:
chmod +t repertoire/
# Exemplo: /tmp (t no lugar de x)
Máscara Padrão (umask)
O umask determina as permissões padrão de novos arquivos:
# Ver o umask atual
umask
# Definir umask
umask 022 # Arquivos: 644, Diretórios: 755
umask 002 # Arquivos: 664, Diretórios: 775
Cálculo:
- Arquivos: 666 - umask
- Diretórios: 777 - umask
Exemplos Práticos
Arquivo Privado
chmod 600 fichier.txt
# Somente o proprietário pode ler/escrever
Script Executável
chmod 755 script.sh
# Todos podem executar, proprietário pode modificar
Diretório Compartilhado
mkdir shared
chmod 775 shared
chgrp developers shared
# Grupo developers pode ler/escrever
Arquivos Web
chown -R www-data:www-data /var/www/html
chmod -R 755 /var/www/html
find /var/www/html -type f -exec chmod 644 {} \;
find /var/www/html -type d -exec chmod 755 {} \;
Resumo
Neste capítulo, você aprendeu:
Permissões: r (leitura), w (escrita), x (execução)
Níveis: Proprietário, Grupo, Outros
Leitura: ls -l, formato simbólico e octal
chmod: Modificar permissões (simbólico ou octal)
chown: Alterar proprietário e grupo
Especiais: SUID, SGID, Sticky Bit
umask: Permissões padrão
Próximos Passos
Capítulo 3.6: Busca de Arquivos
Capítulo 3.7: Links Simbólicos e Hard Links
Capítulo criado em: Dezembro 2024