Pular para o conteúdo principal

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 = 4
  • w = 2
  • x = 1
  • - = 0

Exemplos:

  • rwx = 4+2+1 = 7
  • r-x = 4+0+1 = 5
  • r-- = 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