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õesrwx
para o usuáriousuario
.
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
- Crie um diretório chamado
projetos
:
$ mkdir projetos
- Adicione a permissão SGID ao diretório:
$ sudo chmod g+s projetos
- Adicione o sticky bit ao diretório:
$ sudo chmod +t projetos
- 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
- Crie um arquivo chamado
relatorio.txt
:
$ touch relatorio.txt
- Conceda permissões de leitura e escrita ao usuário
ana
:
$ sudo setfacl -m u:ana:rw relatorio.txt
- Conceda permissões de leitura ao grupo
financeiro
:
$ sudo setfacl -m g:financeiro:r relatorio.txt
- 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--
- Remova a ACL do usuário
ana
:
$ sudo setfacl -x u:ana relatorio.txt
- 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.
Sou um profissional na área de Tecnologia da informação, especializado em monitoramento de ambientes, Sysadmin e na cultura DevOps. Possuo certificações de Segurança, AWS e Zabbix.