Gerenciando Permissões de Arquivos e Diretórios com o Comando chmod no Linux

O comando chmod (change mode) no Linux é uma ferramenta essencial para controlar as permissões de acesso a arquivos e diretórios. Ele permite que o administrador do sistema ou o proprietário de um arquivo determine quem pode ler, escrever ou executar um determinado recurso. Compreender e utilizar o chmod corretamente é fundamental para a segurança e a organização eficaz de um sistema Linux.

Modos de Atribuição de Permissões

O chmod pode ser utilizado de duas maneiras principais para modificar permissões: o modo simbólico e o modo numérico (ou octal).

1. Modo Simbólico

O modo simbólico oferece uma forma intuitiva de adicionar, remover ou definir permissões para diferentes categorias de usuários. A sintaxe geral é:

chmod [quem] [operador] [permissão] [nome_do_arquivo_ou_diretorio]

Componentes do Modo Simbólico:

  • Quem (who): Define para qual grupo de usuários a mudança se aplica:
    • u: Usuário proprietário (user).
    • g: Grupo proprietário (group).
    • o: Outros usuários (others).
    • a: Todos os usuários (all), equivalente a ugo.
  • Operador (operator): Indica a ação a ser realizada:
    • +: Adiciona a permissão especificada.
    • -: Remove a permissão especificada.
    • =: Define as permissões exatamente como especificado, removendo quaisquer outras.
  • Permissão (permission): As permissões a serem alteradas:
    • r: Permissão de leitura (read).
    • w: Permissão de escrita (write).
    • x: Permissão de execução (execute).
    • s: Set-user-ID (SUID) ou Set-group-ID (SGID).
    • t: Sticky bit (especialmente útil para diretórios).

Nota sobre o Sticky Bit (t): Quando aplicado a um diretório, o sticky bit (t) permite que apenas o proprietário do arquivo ou o proprietário do diretório possa excluir ou renomear arquivos dentro desse diretório, mesmo que outros usuários tenham permissões de escrita no diretório. Isso é comumente visto em diretórios públicos como /tmp.

Exemplos de Uso no Modo Simbólico:

Considere um arquivo chamado documento.txt.

# Remover permissão de execução para todos os usuários
chmod a-x documento.txt # Exemplo de saída: rw- rw- rw-

# Retirar permissão de escrita para o grupo e outros
chmod go-w documento.txt # Exemplo de saída: rw- r-- r--

# Conceder permissão de escrita ao grupo
chmod g+w documento.txt # Exemplo de saída: rw- rw- r--

# Adicionar permissão de execução ao proprietário
chmod u+x documento.txt # Exemplo de saída: rwx rw- r--

# Conceder permissão de execução ao grupo e a outros usuários
chmod go+x documento.txt # Exemplo de saída: rwx rwx r-x

2. Modo Numérico (Octal)

O modo numérico utiliza uma representação octal para definir as permissões. Cada tipo de permissão (leitura, escrita, execução) corresponde a um valor numérico, e a soma desses valores para cada categoria de usuário (proprietário, grupo, outros) forma um número de três dígitos.

Valores de Permissão:

  • r (leitura) = 4
  • w (escrita) = 2
  • x (execução) = 1
  • Nenhuma permissão = 0

Para detemrinar o número octal, você soma os valores das permissões desejadas para cada categoria:

  • Proprietário: Soma das permissões do proprietário.
  • Grupo: Soma das permissões do grupo.
  • Outros: Soma das permissões dos outros usuários.

Assim, um número octal típico seria XYZ, onde:

  • X representa as permissões do proprietário.
  • Y representa as permissões do grupo.
  • Z representa as permissões de outros usuários.

Por exemplo:

  • 7 (4+2+1) = rwx (leitura, escrita, execução)
  • 6 (4+2+0) = rw- (leitura, escrita)
  • 5 (4+0+1) = r-x (leitura, execução)
  • 4 (4+0+0) = r-- (leitura)

Exemplos de Uso no Modo Numérico:

Vamos definir as permissões para um arquivo chamado relatorio.pdf.

Suponha que queremos que o proprietário tenha permissões completas (leitura, escrita, execução), o grupo tenha apenas leitura, e outros usuários também apenas leitura.

  • Proprietário: rwx = 4 + 2 + 1 = 7
  • Grupo: r-- = 4 + 0 + 0 = 4
  • Outros: r-- = 4 + 0 + 0 = 4

O modo numérico correspondente é 744.

chmod 744 relatorio.pdf
ls -l relatorio.pdf
# Saída esperada: -rwxr--r-- 1 usuario grupo 0 Data Hora relatorio.pdf

Outro exemplo: Proprietário com leitura/escrita/execução, grupo e outros com leitura/escrita.

  • Proprietário: rwx = 7
  • Grupo: rw- = 6
  • Outros: rw- = 6

O modo numérico é 766.

chmod 766 relatorio.pdf
ls -l relatorio.pdf
# Saída esperada: -rwxrw-rw- 1 usuario grupo 0 Data Hora relatorio.pdf

Definição de Permissões Recursivamente (-R)

É possível aplicar alterações de permissão a um diretório e todos os seus conteúdos (subdiretórios e arquivos) de forma recursiva usando a opção -R.

# Atribuir permissão de leitura e escrita para proprietário e grupo, e apenas leitura para outros, em todos os arquivos e diretórios dentro de /projeto
chmod -R 664 /projeto/

O uso da opção -R deve ser feito com cautela, pois pode afetar um grande número de arquivso e diretórios, potencialmente alterando permissões cruciais do sistema se não for utilizada corretamente.

Tags: chmod Linux permissões arquivos diretórios

Publicado em 10-27 08:38