User Tools

Site Tools


wiki:linux:comandos_grupos:comando_ppa

Comandos de Permissões e Propriedades de Arquivos no Linux

Nível Básico

1. Visualização de Permissões

  • ls -l - Lista arquivos com detalhes, incluindo permissões.
    1. Exemplo de uso:
      ls -l /home/usuario/arquivo.txt
    2. Descrição: Mostra informações detalhadas sobre arquivo.txt, incluindo permissões de leitura, escrita e execução, proprietário, grupo e tamanho.

2. Alteração Simples de Permissões com `chmod`

  • chmod - Altera permissões de arquivos e diretórios.
    1. Exemplo de uso:
      chmod 755 /home/usuario/arquivo.txt
    2. Descrição: Define permissões de leitura, escrita e execução para o dono, e permissões de leitura e execução para outros usuários em arquivo.txt.
  • chmod u+x - Adiciona permissão de execução para o dono.
    1. Exemplo de uso:
      chmod u+x /home/usuario/script.sh
    2. Descrição: Concede permissão de execução ao dono do arquivo script.sh, permitindo que ele seja executado como um programa.

3. Alteração de Propriedades de Grupo com `chgrp`

  • chgrp - Altera o grupo associado a um arquivo ou diretório.
    1. Exemplo de uso:
      chgrp desenvolvedores /home/usuario/projeto
    2. Descrição: Define o grupo desenvolvedores como o grupo proprietário do diretório projeto, permitindo que seus membros tenham acesso de acordo com as permissões do grupo.

Nível Intermediário

1. Alteração Recursiva de Permissões

  • chmod -R - Aplica permissões recursivamente em diretórios e seus arquivos.
    1. Exemplo de uso:
      chmod -R 755 /home/usuario/projeto/
    2. Descrição: Define permissões de leitura, escrita e execução para o dono, e de leitura e execução para outros usuários, em todos os arquivos e subdiretórios dentro de /projeto.

2. Alteração de Propriedade com `chown`

  • chown - Altera o proprietário de um arquivo ou diretório.
    1. Exemplo de uso:
      chown usuario /home/usuario/arquivo.txt
    2. Descrição: Define usuario como o proprietário do arquivo arquivo.txt.
  • chown usuario:grupo - Altera o proprietário e o grupo de um arquivo.
    1. Exemplo de uso:
      chown usuario:desenvolvedores /home/usuario/arquivo.txt
    2. Descrição: Define o usuário usuario como proprietário e o grupo desenvolvedores como o grupo associado ao arquivo arquivo.txt.

3. Permissões Adicionais com `chmod`

  • chmod g+w - Adiciona permissão de escrita para o grupo.
    1. Exemplo de uso:
      chmod g+w /home/usuario/arquivo.txt
    2. Descrição: Permite que o grupo associado ao arquivo arquivo.txt tenha permissão de escrita.
  • chmod o-r - Remove permissão de leitura para outros usuários.
    1. Exemplo de uso:
      chmod o-r /home/usuario/arquivo_secreto.txt
    2. Descrição: Remove a permissão de leitura para todos os usuários que não sejam o dono ou membros do grupo.

4. Visualização Detalhada de Propriedades

  • stat - Exibe detalhes completos de um arquivo, incluindo permissões e propriedades.
    1. Exemplo de uso:
      stat /home/usuario/arquivo.txt
    2. Descrição: Exibe informações detalhadas sobre arquivo.txt, incluindo permissões, timestamps de criação e modificação, e o identificador de usuário e grupo.

Nível Avançado

1. Permissões Especiais com `chmod`

  • chmod u+s - Define o bit SUID (Set User ID).
    1. Exemplo de uso:
      chmod u+s /usr/bin/programa
    2. Descrição: Permite que o programa seja executado com os privilégios do dono do arquivo, em vez do usuário que o executa. Normalmente usado para programas que precisam de permissões elevadas.
  • chmod g+s - Define o bit SGID (Set Group ID).
    1. Exemplo de uso:
      chmod g+s /home/usuario/projeto/
    2. Descrição: Define que todos os arquivos criados dentro do diretório /projeto herdarão o grupo do diretório pai, mantendo consistência de grupo entre arquivos e usuários.
  • chmod o+t - Define o bit Sticky em diretórios.
    1. Exemplo de uso:
      chmod o+t /home/usuario/publico
    2. Descrição: O bit Sticky garante que somente o dono de um arquivo dentro do diretório publico possa excluir ou renomear seus próprios arquivos, mesmo que outros usuários tenham permissão de escrita.

2. Controle Detalhado com ACLs (Access Control Lists)

  • setfacl - Define permissões adicionais para usuários ou grupos específicos.
    1. Exemplo de uso:
      setfacl -m u:usuario2:rwx /home/usuario/arquivo.txt
    2. Descrição: Concede permissões completas (leitura, escrita, execução) ao usuário usuario2 sobre o arquivo arquivo.txt, sem alterar as permissões do dono ou grupo.
  • getfacl - Exibe as permissões ACL de um arquivo ou diretório.
    1. Exemplo de uso:
      getfacl /home/usuario/arquivo.txt
    2. Descrição: Mostra todas as permissões configuradas, incluindo permissões padrão e as configuradas via ACL, para o arquivo arquivo.txt.

3. Aplicação Recursiva de ACLs

  • setfacl -R - Aplica ACLs recursivamente em diretórios.
    1. Exemplo de uso:
      setfacl -R -m u:usuario2:rwx /home/usuario/projeto/
    2. Descrição: Concede permissões completas ao usuário usuario2 para todos os arquivos e subdiretórios dentro do diretório /projeto.
  • setfacl -d - Define permissões ACL padrão para novos arquivos em um diretório.
    1. Exemplo de uso:
      setfacl -d -m u:usuario2:rwx /home/usuario/projeto/
    2. Descrição: Configura ACLs para que todos os novos arquivos criados dentro de /projeto herdem as permissões concedidas ao usuário usuario2.

4. Remoção de ACLs

  • setfacl -x - Remove uma entrada ACL específica.
    1. Exemplo de uso:
      setfacl -x u:usuario2 /home/usuario/arquivo.txt
    2. Descrição: Remove todas as permissões ACL concedidas ao usuário usuario2 sobre o arquivo arquivo.txt.
  • setfacl -b - Remove todas as ACLs de um arquivo ou diretório.
    1. Exemplo de uso:
      setfacl -b /home/usuario/projeto/
    2. Descrição: Remove todas as permissões ACL de /projeto, retornando às permissões padrão definidas por chmod.

5. Controle de Atributos com `chattr` e `lsattr`

  • chattr - Define atributos especiais para arquivos e diretórios.
    1. Exemplo de uso:
      chattr +i /home/usuario/arquivo.txt
    2. Descrição: Define o atributo imutable (imutável) no arquivo arquivo.txt, impedindo que ele seja modificado ou excluído, mesmo por usuários root.
  • lsattr - Lista os atributos especiais de arquivos e diretórios.
    1. Exemplo de uso:
      lsattr /home/usuario/arquivo.txt
    2. Descrição: Exibe os atributos definidos para arquivo.txt, permitindo visualizar se o arquivo está imutável, apenas anexável ou com outros atributos especiais.

Atributos Comuns Gerenciados pelo `chattr`

  • +i - Define o atributo imutável.
    1. Exemplo de uso:
      chattr +i /home/usuario/arquivo.txt
    2. Descrição: Um arquivo com o atributo +i não pode ser modificado, renomeado ou excluído até que o atributo seja removido com
      chattr -i

      .

  • +a - Define o atributo “append only” (somente anexar).
    1. Exemplo de uso:
      chattr +a /home/usuario/log.txt
    2. Descrição: Um arquivo com o atributo +a só pode ser modificado para adicionar dados no final (anexar). Não é possível editar ou remover o conteúdo existente.
  • +d - Impede que o arquivo seja incluído em backups com o comando `dump`.
    1. Exemplo de uso:
      chattr +d /home/usuario/arquivo_temporario
    2. Descrição: O arquivo marcado com +d será ignorado por ferramentas de backup como `dump`, útil para arquivos temporários ou caches.
  • +u - Define que o conteúdo de um arquivo deve ser preservado em caso de exclusão.
    1. Exemplo de uso:
      chattr +u /home/usuario/arquivo_critico.txt
    2. Descrição: Um arquivo com o atributo +u tem seu conteúdo salvo quando excluído, permitindo a recuperação futura.

Nível Especializado

1. Herança Avançada de Permissões com ACLs

  • setfacl -d -R - Define permissões ACL padrão recursivamente para novos arquivos e diretórios.
    1. Exemplo de uso:
      setfacl -d -R -m u:usuario2:rwx /home/usuario/projeto/
    2. Descrição: Configura ACLs padrão recursivas para que todos os arquivos e diretórios criados dentro de /projeto herdem permissões completas para o usuário usuario2.
  • setfacl -k - Remove as permissões ACL padrão de um diretório.
    1. Exemplo de uso:
      setfacl -k /home/usuario/projeto/
    2. Descrição: Remove as permissões ACL padrão de /projeto, permitindo que novos arquivos criados não herdem permissões adicionais.

2. Auditoria de Acessos com `auditd`

  • auditctl - Configura regras de auditoria para monitorar acessos a arquivos.
    1. Exemplo de uso:
      auditctl -w /home/usuario/arquivo.txt -p rwxa -k monitor_arquivo
    2. Descrição: Monitora todas as tentativas de leitura, escrita, execução e alteração do arquivo arquivo.txt. Os eventos de acesso são registrados com a chave de auditoria monitor_arquivo.
  • ausearch - Pesquisa eventos de auditoria relacionados a arquivos.
    1. Exemplo de uso:
      ausearch -f /home/usuario/arquivo.txt
    2. Descrição: Pesquisa os logs de auditoria para exibir todas as tentativas de acesso ao arquivo arquivo.txt, incluindo informações sobre o usuário e a ação realizada.

3. Controle de Acesso com SELinux

  • chcon - Altera o contexto de segurança de um arquivo.
    1. Exemplo de uso:
      chcon -t httpd_sys_content_t /var/www/html/index.html
    2. Descrição: Altera o contexto de segurança do arquivo index.html para que ele possa ser acessado pelo servidor web Apache em um sistema com SELinux habilitado.
  • restorecon - Restaura os contextos de segurança padrão.
    1. Exemplo de uso:
      restorecon -v /var/www/html/
    2. Descrição: Restaura os contextos de segurança padrão para todos os arquivos no diretório /var/www/html, conforme definido pelas políticas SELinux.

4. Manipulação de Capabilities com `setcap`

  • setcap - Atribui capacidades específicas a binários sem necessidade de SUID.
    1. Exemplo de uso:
      setcap cap_net_bind_service=+ep /usr/bin/apache2
    2. Descrição: Atribui ao binário apache2 a capacidade de vincular-se a portas de número inferior a 1024 (normalmente reservado a root) sem a necessidade de usar o bit SUID.
  • getcap - Exibe as capacidades de um arquivo.
    1. Exemplo de uso:
      getcap /usr/bin/apache2
    2. Descrição: Lista as capacidades que foram atribuídas ao binário apache2, permitindo a verificação das permissões especiais.

5. Gerenciamento de Políticas de Controle de Acesso com AppArmor

  • aa-status - Verifica o status das políticas do AppArmor.
    1. Exemplo de uso:
      aa-status
    2. Descrição: Exibe o status atual das políticas de controle de acesso do AppArmor, incluindo quais perfis estão carregados e em execução.
  • aa-complain - Coloca um perfil do AppArmor no modo de “Complain” (relatório de violação).
    1. Exemplo de uso:
      aa-complain /etc/apparmor.d/usr.sbin.mysqld
    2. Descrição: Altera o perfil do AppArmor para o modo “Complain”, no qual as violações de segurança são registradas nos logs, mas não são aplicadas.

6. Auditar Permissões com `getfacl` e `auditd`

  • getfacl + auditctl - Combina auditoria de ACLs com monitoramento de acessos.
    1. Exemplo de uso:
      getfacl /home/usuario/arquivo.txt | auditctl -w /home/usuario/arquivo.txt -p rwxa -k acl_audit
    2. Descrição: Usa getfacl para visualizar as permissões ACL e auditctl para auditar o acesso ao arquivo, rastreando tentativas de acesso de acordo com a ACL e criando logs detalhados com a chave acl_audit.
wiki/linux/comandos_grupos/comando_ppa.txt · Last modified: by Wiki Administrator