Listas de controle de acesso no Ubuntu

Listas de controle de acesso no Ubuntu
As contas de usuário são criadas com um certo conjunto de privilégios e direitos predefinidos sobre arquivos e serviços do sistema. Por outro lado, existem grupos para compartilhar arquivos e pastas entre usuários. Normalmente, quando as contas de usuário são criadas, elas podem ser atribuídas a grupos alternativos. No entanto, há momentos em que você pode não querer atribuir um usuário em particular a um grupo específico, mas, ao mesmo tempo, pode ser necessário compartilhar arquivos/pastas com esse usuário específico. É aqui que as listas de controle de acesso (ACL) entram em cena. Neste tutorial, aprenderemos sobre listas de controle de acesso no Ubuntu.

Listas de controle de acesso (ACL)

Listas de controle de acesso (ACL) nos permitem ajustar o controle de acesso. Em outras palavras, suponha que o usuário Sara precise de acesso a uma única pasta de propriedade de Kalyani. Tecnicamente, poderíamos atribuir Sara ao grupo de Kalyani, mas isso significaria que Sara teria acesso a mais do que precisa, e supor ainda que Kalyani tenha arquivos sensíveis que ela não deseja que Sara leia, escreva ou execute. É aqui que listas de controle de acesso ou ACLs entram em cena. Em teoria, podemos mexer com permissões, mas os ACLs nos permitem dar acessos diferentes a diferentes usuários, além de dar acesso sem ter que mexer com as permissões básicas reais do arquivo ou da pasta.

Visualização de permissões atuais

Utilizamos o comando getfacl (Obtenha Lista de Controle de Acesso ao Arquivo) para visualizar as permissões atuais do ACL.

getfacl pasta de arquivo

Suponhamos que eu crie uma pasta chamada segredo com dois subdiretos e 5 arquivos. Suponha ainda que eu queira ver as permissões da ACL na pasta secreta.

getfacl segredo

Isso significa que o proprietário dos arquivos e pasta, Kalyani, pertencente ao grupo Kalyani, leu, escreveu e executa permissões. Todo mundo, no entanto, não tem permissão.

Atribuindo permissões de ajuste fino do usuário

Ajustar as permissões com ACL é realizado usando o comando setfacl. O interruptor -m, em particular, é usado para modificar as permissões.

Setfacl -m U: Nome de usuário: Nome do arquivo de permissões

O U denota que a mudança é para um usuário e não para um grupo. Depois do cólon, alguém escreveria o nome de usuário para quem a permissão é concedida, bem como a permissão concedida. As permissões são as mesmas que estão disponíveis para CHMOD: Leia, Escreva e Execute. Por fim, escrevemos o nome do arquivo para o qual a permissão é aplicada.

Por exemplo, suponha que eu deseje conceder acesso total a esta pasta secreta ao usuário Sara, então eu escreveria:

setfacl -m u: sara: rwx segredo

Agora, se fizermos login como Sara, teríamos lido, escrevemos e executamos acesso à pasta "Secret". Agora, lembre -se, eu defino uma permissão 770 para o diretório inicial. Essa permissão foi mantida, mas uma exceção à regra foi adicionada usando listas de controle de acesso. Se eu tivesse outra pasta chamada "Kali" com permissão 770 de propriedade de Kalyani, o usuário Sara não seria capaz de tocá -lo. De fato, diria "permissão negada".

Além disso, um ponto a ser observado é que, uma vez que o arquivo seja modificado como um ACL, há um sinal de mais ao lado quando você o liste. Nesse caso, como você pode ver, diz Drwxrwx-+ para a pasta chamada segredo. O sinal de mais implica que foi modificado com ACLs.

Depois de definir ACLs, uma máscara também é criada. A máscara é a permissão máxima que um usuário ou grupo da ACL pode ter potencialmente em um diretório ou um arquivo.

Atribuindo grupos Permissões de ajuste fino

Assim como atribuir a permissão especial aos usuários, podemos atribuir permissão especial a grupos também. O que isso significa é que podemos manter nossas permissões básicas como está e atribuir uma permissão adicional de um grupo em particular usando o ACL.

setfacl -m g: group_name: permissões nome do arquivo

Ex:

setfacl -m g: John: r secreto

Nesse caso, estamos dando ao grupo John Leia permissão para a pasta secreta. Isso significa que todos os membros do grupo John terão permissão para a pasta secreta e apenas a pasta secreta. Todo o resto estará sob trancado e chave.

Atribuição recursiva

A pasta secreta foi projetada com 3 arquivos diretamente nela e 2 subdiretórios, cada um com um único arquivo.

Quando atribuímos as permissões para o usuário Sara e o grupo John, não o fizemos recursivamente, então vamos verificar as permissões da ACL dos subdiretos atualmente (depois de atribuir permissões ao diretório secreto).

Como você pode ver, as permissões da ACL se aplicaram apenas ao diretório secreto e não aos subdiretos. O que isso significa é que o usuário Sara e o grupo John não têm as permissões fornecidas nos subdiretos! Nesse caso, se queremos dar permissões a todo o diretório (incluindo os subdiretos), precisamos fazer uma tarefa recursiva. Usamos o interruptor -r para fazer isso.

setfacl -r -m u: nome de usuário: nome do arquivo de permissões

Ex:

setfacl -r -m u: sara: rwx segredo

Excluindo permissões de ajuste fino

Você também pode querer revogar as permissões dadas, e isso é tão fácil de fazer quanto dar a eles. Você usa o comutador -x em vez do switch -m para revogar as permissões.

Para remover uma entrada específica:

setfacl -x u: nome do nome de usuário nome
setfacl -x g: group_name filename

Nesse caso, eu teria escrito:

setfacl -x u: Sara segredo
setfacl -x g: John Secret

Para remover todas as entradas de uma só vez:

Setfacl -b FileName

Por exemplo:

setfacl -b segredo

Isso, no entanto, não remove os direitos dos subdiretos. Para remover os direitos dos subdiretos, você deve usar a recursão.

Setfacl -r -b Secret

Resumo

Tudo o que aprendemos se resume a isso:

Para visualizar as permissões da ACL:

getfacl filename

Para definir as permissões da ACL:

setfacl nome do arquivo

Opções:
-M, -Modify Modify ACL
-x, -Rremove Remova a entrada da ACL
-B, -Rremove -All Remova todas as entradas da ACL
-R Atribuição recursiva

Entrada:
U: Nome de usuário: permissões para usuários
G: Group_name: Permissões para grupos

Embora exista CHMOD para conceder permissões para arquivos e pastas, não é seletivo. Não pode conceder privilégios diferentes a diferentes usuários. Além disso, há momentos em que não se quer adicionar pessoas aleatórias a grupos. Listas de controle de ACL ou acesso foram inventadas apenas para este tipo de ocasião. Ele pode fornecer aos usuários ou grupos específicos acesso a arquivos e/ou pastas específicos. Neste tutorial, aprendemos a dar aos usuários e grupos permissões especiais, atribuir recursivamente permissões e revogar as referidas permissões. Então, vá em frente e tune permissões em arquivos e pastas daqui em diante!

Codificação feliz!