Pular para o conteúdo
Início » Aprendendo Linux Parte 8 – Gerenciamento de Permissões Avançadas e ACLs no Linux

Aprendendo Linux Parte 8 – Gerenciamento de Permissões Avançadas e ACLs no Linux

Na aula anterior, aprendemos sobre o gerenciamento básico de permissões no Linux. Nesta aula, vamos aprofundar no gerenciamento de permissões avançadas, incluindo ACLs (Access Control Lists), que oferecem um controle mais granular sobre quem pode acessar arquivos e diretórios.

Revisão das Permissões Básicas

Antes de mergulharmos nas permissões avançadas, vamos revisar brevemente as permissões básicas no Linux:

  • Leitura (r): Permite visualizar o conteúdo do arquivo ou listar o conteúdo do diretório.
  • Escrita (w): Permite modificar o conteúdo do arquivo ou fazer alterações no diretório (criar, remover arquivos).
  • Execução (x): Permite executar o arquivo como um programa ou acessar o diretório.

As permissões são definidas para três categorias de usuários:

  • Usuário (u): O proprietário do arquivo.
  • Grupo (g): O grupo ao qual o arquivo pertence.
  • Outros (o): Todos os outros usuários.

Permissões Avançadas

SUID (Set User ID)

Quando aplicada a um arquivo executável, a permissão SUID permite que o arquivo seja executado com as permissões do proprietário do arquivo, e não do usuário que o executa.

$ sudo chmod u+s arquivo_executavel
SGID (Set Group ID)

Quando aplicada a um diretório, a permissão SGID garante que novos arquivos e subdiretórios herdarão o grupo do diretório pai.

$ sudo chmod g+s diretorio
Sticky Bit

Quando aplicada a um diretório, a permissão Sticky Bit impede que usuários comuns excluam ou renomeiem arquivos de outros usuários no diretório.

$ sudo chmod +t /diretorio_publico

ACLs (Access Control Lists)

As ACLs permitem definir permissões mais granulares para arquivos e diretórios, além das permissões básicas de usuário, grupo e outros. Com as ACLs, você pode especificar permissões para usuários e grupos adicionais.

Verificando Suporte a ACL

Para verificar se o sistema de arquivos suporta ACLs, use o comando mount:

$ mount | grep acl
Configurando ACLs
Comando setfacl

O comando setfacl é usado para definir ACLs em arquivos e diretórios.

$ sudo setfacl -m u:usuario:rwx arquivo
  • -m: Modifica as ACLs.
  • u:usuario:rwx: Define permissões rwx para o usuário usuario.
Exemplo Prático

Para conceder permissões de leitura e escrita ao usuário maria em arquivo.txt:

$ sudo setfacl -m u:maria:rw arquivo.txt

Para conceder permissões de leitura, escrita e execução ao grupo developers em diretorio:

$ sudo setfacl -m g:developers:rwx diretorio
Comando getfacl

O comando getfacl é usado para visualizar as ACLs de arquivos e diretórios.

$ getfacl arquivo.txt
Exemplo Prático

Para visualizar as ACLs de arquivo.txt:

$ getfacl arquivo.txt
# file: arquivo.txt
# owner: usuario
# group: grupo
user::rw-
user:maria:rw-
group::r--
mask::rw-
other::r--
Removendo ACLs

Para remover uma ACL específica, use o comando setfacl -x:

$ sudo setfacl -x u:maria arquivo.txt

Para remover todas as ACLs de um arquivo ou diretório, use setfacl -b:

$ sudo setfacl -b arquivo.txt
Máscara de ACL

A máscara de ACL (mask) define as permissões máximas que podem ser aplicadas aos usuários e grupos adicionais. Para modificar a máscara:

$ sudo setfacl -m m::rwx arquivo.txt

Exemplos Práticos

Exemplo 1: Configurando Permissões Avançadas
  1. Crie um diretório chamado projetos:
$ mkdir projetos
  1. Adicione a permissão SGID ao diretório:
$ sudo chmod g+s projetos
  1. Adicione o sticky bit ao diretório:
$ sudo chmod +t projetos
  1. Verifique as permissões do diretório:
$ ls -ld projetos
drwxr-sr-t 2 usuario grupo 4096 mai 18 10:00 projetos
Exemplo 2: Configurando ACLs
  1. Crie um arquivo chamado relatorio.txt:
$ touch relatorio.txt
  1. Conceda permissões de leitura e escrita ao usuário ana:
$ sudo setfacl -m u:ana:rw relatorio.txt
  1. Conceda permissões de leitura ao grupo financeiro:
$ sudo setfacl -m g:financeiro:r relatorio.txt
  1. Verifique as ACLs do arquivo:
$ getfacl relatorio.txt
# file: relatorio.txt
# owner: usuario
# group: grupo
user::rw-
user:ana:rw-
group::r--
group:financeiro:r--
mask::rw-
other::r--
  1. Remova a ACL do usuário ana:
$ sudo setfacl -x u:ana relatorio.txt
  1. Remova todas as ACLs do arquivo:
$ sudo setfacl -b relatorio.txt

O gerenciamento de permissões avançadas e ACLs no Linux oferece um controle mais detalhado sobre o acesso a arquivos e diretórios, permitindo configurações de segurança mais precisas. Nesta aula, exploramos como usar permissões avançadas como SUID, SGID e Sticky Bit, além de como configurar e gerenciar ACLs.

Pratique esses comandos para ganhar confiança no gerenciamento de permissões avançadas no Linux. Se tiver dúvidas ou sugestões, deixe um comentário no blog NerdExpert.com.br. Na próxima aula, exploraremos o gerenciamento de discos e sistemas de arquivos no Linux.