Como gerenciar ACLs no Linux
- 4649
- 429
- Mrs. Willie Beahan
Objetivo
Introdução ao gerenciamento do ACLS (Lista de Controle de Acesso) no Linux
Sistema operacional e versões de software
- Sistema operacional: - Distribuição Linux AGNOSTIC
Requisitos
- Acesso à raiz em uma instalação do Linux em funcionamento
- Conhecimento do sistema de permissão discricionário
- Um sistema de arquivos que suporta ACLs (e.g xfs, ext2, ext3, ext4), montado com a opção 'ACL'
- Tendo o pacote 'ACL' instalado
Dificuldade
MÉDIO
Convenções
- # - requer que os comandos Linux sejam executados com privilégios root diretamente como usuário root ou por uso de
sudo
comando - $ - Requer que os comandos do Linux sejam executados como um usuário não privilegiado regular
Introdução
Neste tutorial, veremos o que são ACLs e como fazer a manipulação básica desse tipo de permissões em uma plataforma Linux. As instruções abaixo funcionarão em qualquer distribuição Linux. Suponho que você saiba e se sinta confortável usando permissões discricionárias de Ugo/RWX padrão.
Então, o que são ACLs ?
Os ACLs são um segundo nível de permissões discricionárias, que podem substituir os UGO/RWX padrão. Quando usados corretamente, eles podem conceder a você uma melhor granularidade para definir o acesso a um arquivo ou um diretório, por exemplo, dando ou negando acesso a um usuário específico que não é o proprietário do arquivo, nem no proprietário do grupo.
Começando
A primeira coisa que você precisa fazer, se quiser aproveitar as ACLs, é garantir que o sistema de arquivos em que você deseja usá -los tenha sido montado com a opção 'ACL'. Para verificar o último, você pode executar o comando 'tune2fs -l', passando a partição como argumento. Como você pode ver em execução (saída truncada):
# tune2fs -l /dev /sda3
Dá o seguinte resultado no meu sistema, mostrando que o sistema de arquivos ON /DEV /SDA3 possui, entre as opções de montagem padrão, também 'ACL'.
Se o seu sistema de arquivos não tiver sido montado com a opção 'ACL', você poderá reformulá-lo dando a opção necessária:
# Monte -o Remount -o ACL /dev /sda1
No entanto, observe que as opções de montagem definidas dessa maneira não serão persistentes e não sobreviverão a uma reinicialização. Se você deseja obter persistência, deve modificar as opções de montagem do sistema de arquivos em /etc /fstab, atribuindo a opção 'ACL' estaticamente.
Outra coisa que precisamos é instalar o ACL
pacote. Este pacote contém vários utilitários da ACLS, como o getfacl
e setfacl
programas.
Um caso de teste
Vamos ver o que as ACLs podem fazer por nós. Primeiro, criaremos um arquivo chamado texto.CFG e nós o daremos como um argumento para o getfacl
comando. Vamos ver o que a saída deste comando mostra:
$ touch text.CFG && getfacl text.cfg
Como você pode ver, como não definimos nenhuma permissão do ACL no arquivo, o comando exibe apenas os valores de permissões padrão, além do proprietário do arquivo e do proprietário do grupo, tendo lido e gravação permissões. Agora vamos imaginar que queremos dar um usuário específico (vou criar esse usuário de propósito e chamá -lo fictício
), um conjunto específico de privilégios no arquivo. Nós apenas teremos que correr:
$ setfacl -m u: manequim: texto rw.cfg
Vamos analisar o comando: primeiro temos, é claro, o nome do programa setfacl
, o que é bastante auto-explicativo, então passamos pelo -m
opção (abreviação de --modificar
) que nos permite alterar as ACLs de um arquivo, depois as descrições de permissão u: manequim: rw
.
Temos três 'seções' divididas por colonos: no primeiro, o você
significa usuário, especificando que queremos definir as ACLs para um usuário específico. Poderia ter sido um g
para grupo, ou um o
para outros
. Na segunda seção, temos o nome do usuário para quem queremos definir as permissões e, no terceiro, as permissões para atribuir.
Finalmente, o nome do arquivo no qual queremos aplicar as permissões.
Se agora tentarmos executar o comando 'getfacl', podemos ver que sua saída reflete as alterações que fizemos:
$ getfacl texto.cfg
Uma entrada foi adicionada para o fictício
Usuário, mostrando as permissões que atribuímos a ele. Fora isso, se você perceber, também uma entrada para mascarar
apareceu. O que isso representa ? A máscara associada a um LCA limita o conjunto de permissões que podem ser atribuídas no arquivo para os grupos e usuários nomeados e para o proprietário do grupo, mas não tem efeito nas permissões para o proprietário do arquivo e o proprietário outro
Grupo de permissão.
Nesse caso, apenas as permissões de leitura e escrita poderiam ser atribuídas com o comando setfacl. Claro que podemos mudar esta opção, usando setfacl
Programa em si:
$ setfacl -m máscara: r texto.cfg
Com o comando acima, definimos a máscara para permitir apenas permissões de leitura. Vamos verificar a saída de getfacl
agora:
$ getfacl texto.cfg
Como você pode ver, não apenas as mudanças que fizemos na máscara agora são relatadas, mas também as permissões efetivas para o proprietário do grupo e o usuário nomeado fictício
são mostrados. Embora o proprietário do grupo e o fictício
O usuário tem permissões de leitura e escrita no arquivo, alterando a máscara, limitamos efetivamente suas permissões a ler apenas. Como mostra a saída do comando, eles agora só podem ler o arquivo.
Além de alterado explicitamente com o comando acima, a máscara ACLS também é recalculada automaticamente quando atribuímos ou alteramos as permissões com o setFacl (a menos que a opção -n seja especificada). Vamos demonstrar que: mudaremos as permissões do fictício
usuário para rwx
e então verifique a saída GETFACL:
$ setfacl -m u: manequim: texto rwx.CFG && getfacl text.cfg
Como você pode ver, a máscara foi recalculada e agora reflete as permissões máximas presentes para o usuário nomeado fictício
. Obviamente, como agora nenhuma permissões definidas anteriormente é maior que a máscara, não há necessidade de mostrar o #eficaz
status de permissão.
Você também pode usar a ACL para negar completamente o acesso a um arquivo para um usuário ou grupo nomeado específico. Por exemplo, executando:
$ setfacl -m u: manequim: - texto.cfg
negarmos efetivamente todos os privilégios ao fictício
Usuário no texto.Arquivo CFG.
ACLs padrão
O padrão
ACL é um tipo específico de permissão atribuída a um diretório, que não altera as permissões do próprio diretório, mas faz com que as ACLs especificadas sejam definidas por padrão em todos os arquivos criados dentro dele. Vamos demonstrar: primeiro vamos criar um diretório e atribuir padrão
ACL para ele usando o -d
opção:
$ mkdir teste && setfacl -d -m u: manequim: teste rw
Agora, podemos examinar a saída do getFacl para esse diretório:
$ getfacl teste
O padrão
As permissões foram atribuídas corretamente. Agora, podemos verificá -los criando um arquivo dentro do diretório de teste e verificando suas permissões executando getfacl:
$ toque teste/arquivo.cfg && getfacl teste/arquivo.cfg
Como esperado, o arquivo foi criado automaticamente recebendo as permissões ACLS especificadas acima.
Quando você deseja apagar todo o conjunto de ACLs, você sempre pode executar o setfacl com o -b
opção.
Este tutorial abrange os principais aspectos das ACLs e, é claro, há muito mais sobre eles para saber, então sugiro, como sempre, para ler o manual para um conhecimento mais profundo. Até agora, lembre -se de que, se você quiser remover todas as permissões ACLs atribuídas a um arquivo, basta executar setfacl
com o -b
(abreviatura de --deletar tudo
) opção.
Tutoriais do Linux relacionados:
- Coisas para instalar no Ubuntu 20.04
- Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
- Arquivos de configuração do Linux: os 30 primeiros mais importantes
- Download do Linux
- Linux pode obter vírus? Explorando a vulnerabilidade do Linux…
- Melhor distro Linux para desenvolvedores
- Comandos Linux: os 20 comandos mais importantes que você precisa para…
- Coisas para fazer depois de instalar o Ubuntu 22.04 Jellyfish…
- Como montar a imagem ISO no Linux
- Como formatar o disco no Linux
- « Introdução com Jekyll no Debian 9 Stretch Linux
- Lemp (Linux, Nginx, Mariadb, Php) Implantação de imagem do Docker »