User Tools

Site Tools


wiki:linux:comandos:comando_permissoes

Introdução aos Comandos de Gerenciamento de Permissões no Linux

No Linux, o controle de acesso a arquivos e diretórios é fundamental para garantir a segurança e o gerenciamento adequado de um sistema multiusuário. Para isso, o sistema oferece comandos poderosos que permitem ajustar as permissões, a propriedade e os atributos dos arquivos e diretórios, garantindo que eles sejam acessados e modificados apenas por usuários autorizados.

Os comandos `chown`, `chmod`, `chattr` e `newgrp` são essenciais para administradores de sistemas que precisam gerenciar permissões com precisão. Com esses comandos, você pode:

  • Alterar o dono e o grupo de arquivos e diretórios (`chown`);
  • Definir permissões específicas de leitura, escrita e execução, bem como permissões especiais como `setuid`, `setgid` e `sticky bit` (`chmod`);
  • Aplicar atributos avançados, como imutabilidade e “somente anexar” (`chattr`);
  • Alternar temporariamente para um novo grupo de usuários, afetando permissões em tempo de execução (`newgrp`).

Os exemplos a seguir demonstram como usar esses comandos em diferentes níveis de complexidade, desde operações básicas até casos avançados, permitindo que você tenha controle total sobre a segurança e o acesso ao sistema.

Nível Básico

  • Alterar o dono de um arquivo com `chown`:
    1. chown usuario arquivo.txt
    2. Muda o dono de `arquivo.txt` para o usuário especificado.
  • Alterar as permissões de um arquivo para leitura e escrita com `chmod`:
    1. chmod 644 arquivo.txt
    2. Define permissões de leitura e escrita para o dono, e apenas leitura para outros usuários.
  • Adicionar o atributo de somente leitura a um arquivo com `chattr`:
    1. chattr +i arquivo.txt
    2. Define o arquivo como “imutável” (somente leitura), impedindo alterações ou exclusão.
  • Mudar para um novo grupo temporariamente com `newgrp`:
    1. newgrp grupo1
    2. Troca para o grupo `grupo1`, afetando permissões temporariamente até o término da sessão.

Nível Intermediário

  • Alterar o dono e o grupo de um arquivo com `chown`:
    1. chown usuario:grupo arquivo.txt
    2. Muda o dono do arquivo para `usuario` e o grupo para `grupo`.
  • Aplicar permissões recursivamente a todos os arquivos de um diretório com `chmod`:
    1. chmod -R 755 /pasta/
    2. Define permissões recursivamente em todos os arquivos e subdiretórios dentro de `/pasta/`.
  • Remover o atributo imutável de um arquivo com `chattr`:
    1. chattr -i arquivo.txt
    2. Remove o atributo de imutabilidade, permitindo que o arquivo seja modificado ou excluído.
  • Adicionar um usuário a um grupo temporariamente com `newgrp`:
    1. newgrp grupo2
    2. Adiciona o usuário ao grupo `grupo2` temporariamente na sessão atual.

Nível Avançado

  • Transferir a propriedade de todos os arquivos de um diretório recursivamente com `chown`:
    1. chown -R usuario:grupo /pasta/
    2. Transfere a propriedade de todos os arquivos e diretórios dentro de `/pasta/` para o usuário e grupo especificados.
  • Definir permissões especiais com `chmod` (bit `setuid`):
    1. chmod u+s arquivo_binario
    2. Define o bit `setuid`, permitindo que o arquivo binário seja executado com as permissões do dono do arquivo.
  • Definir permissões especiais com `chmod` (bit `setgid`):
    1. chmod g+s /diretorio_compartilhado
    2. Define o bit `setgid` em um diretório, garantindo que todos os arquivos criados nele herdem o grupo do diretório.
  • Adicionar o bit `sticky` para um diretório compartilhado com `chmod`:
    1. chmod +t /diretorio_publico
    2. Adiciona o bit `sticky`, permitindo que apenas o dono de um arquivo possa excluí-lo dentro de um diretório compartilhado.
  • Aplicar o atributo de “anexo” a um arquivo com `chattr`:
    1. chattr +a log.txt
    2. Define o arquivo como “somente anexar”, permitindo apenas adicionar dados, mas não excluir ou modificar.
  • Alterar o grupo temporário e executar um comando específico com `newgrp`:
    1. newgrp grupo3 -c 'touch arquivo.txt'
    2. Muda temporariamente para o grupo `grupo3` e executa o comando `touch arquivo.txt` no contexto desse grupo.

Nível Especializado

  • Alterar dono e grupo de forma recursiva, mas com exceção de certos tipos de arquivos com `chown`:
    1. find /pasta -type f -exec chown usuario:grupo {} +
    2. Altera o dono e o grupo de todos os arquivos em `/pasta`, mas exclui diretórios.
  • Adicionar a permissão `sticky bit` para um diretório compartilhado com `chmod`:
    1. chmod 1777 /pasta_publica
    2. Adiciona o sticky bit, permitindo que apenas o dono dos arquivos dentro de `/pasta_publica` possa excluir seus próprios arquivos.
  • Tornar um diretório imutável e prevenir exclusão com `chattr`:
    1. chattr +i /diretorio/
    2. Marca o diretório como imutável, prevenindo qualquer alteração ou exclusão de seus arquivos.
  • Reverter os atributos de imutabilidade e anexação em um arquivo com `chattr`:
    1. chattr -ia arquivo.txt
    2. Remove tanto o atributo de imutabilidade quanto o de “somente anexar”, permitindo modificar ou excluir o arquivo.
  • Mudar para um grupo temporário e iniciar um novo shell com permissões desse grupo usando `newgrp`:
    1. newgrp grupo_admin
    2. Muda para o grupo `grupo_admin` e inicia um novo shell com as permissões desse grupo.
  • Combinação de `setuid`, `setgid` e `sticky bit` em diretórios e arquivos:
    1. chmod 4775 arquivo_binario
    2. Define o bit `setuid` (4), permitindo que o arquivo seja executado com as permissões do dono, além de `rwxr-xr-x` (755).
  1. chmod 2775 /diretorio_compartilhado
  2. Define o bit `setgid` (2) em um diretório, garantindo que todos os arquivos criados nele herdem o grupo do diretório, além de permissões `rwxrwxr-x` (775).
  1. chmod 1777 /diretorio_publico
  2. Define o `sticky bit` (1) no diretório, permitindo que apenas o dono de um arquivo possa excluí-lo, além de permissões `rwxrwxrwx` (777).
wiki/linux/comandos/comando_permissoes.txt · Last modified: by Wiki Administrator