ACL Linux - UFMAgeraldo/soii/8.ACL.pdfSolaris, MacOs, e Windows permitem múltiplos streams de...

24
O que são ACLs e por que usá-las? ACL Linux

Transcript of ACL Linux - UFMAgeraldo/soii/8.ACL.pdfSolaris, MacOs, e Windows permitem múltiplos streams de...

Page 1: ACL Linux - UFMAgeraldo/soii/8.ACL.pdfSolaris, MacOs, e Windows permitem múltiplos streams de informações serem associados a um arquivo. Nesses sistemas existem chamadas especificas

O que são ACLs e por que usá-las?

ACL Linux

Page 2: ACL Linux - UFMAgeraldo/soii/8.ACL.pdfSolaris, MacOs, e Windows permitem múltiplos streams de informações serem associados a um arquivo. Nesses sistemas existem chamadas especificas

Motivação Unix utiliza um sistema de arquivo

simples, mas poderoso

Permissões para o dono, grupo do dono e demais

Cada um possui 3 bits (r, w, x)

2

Page 3: ACL Linux - UFMAgeraldo/soii/8.ACL.pdfSolaris, MacOs, e Windows permitem múltiplos streams de informações serem associados a um arquivo. Nesses sistemas existem chamadas especificas

O que é ACL Acess Control List

São listas de controle de acesso a objetos do sistema de arquivos do sistema operacional

Vieram para complementar os sistema de permissões baseadas nos bits (r,w,x)

3

Page 4: ACL Linux - UFMAgeraldo/soii/8.ACL.pdfSolaris, MacOs, e Windows permitem múltiplos streams de informações serem associados a um arquivo. Nesses sistemas existem chamadas especificas

Tipos ACL de Acesso objeto que define

permissões de acesso aos usuários e grupos de todos os objetos do sistema de arquivos.

ACL Padrão ACLs que só podem ser aplicada a diretórios. Elas determinam as permissões do objetos do sistema de arquivos herdadas dos diretórios pais.

Entradas ACL são as entradas na lista que é a ACL.

4

Page 5: ACL Linux - UFMAgeraldo/soii/8.ACL.pdfSolaris, MacOs, e Windows permitem múltiplos streams de informações serem associados a um arquivo. Nesses sistemas existem chamadas especificas

Funcionamento das ACLs Uma ACL é composta por um conjunto de

entradas que determinam as permissões de cada arquivo no sistema, cada arquivo tem uma representação ACL

As três classes de permissões de usuários são representadas por entradas na ACL.

Permissões adicionais para usuários ou grupos ocupam entradas adicionais na ACL.

5

Page 6: ACL Linux - UFMAgeraldo/soii/8.ACL.pdfSolaris, MacOs, e Windows permitem múltiplos streams de informações serem associados a um arquivo. Nesses sistemas existem chamadas especificas

Funcionamento

ACLs equivalentes às permissões do arquivo modo bits são chamadas de mínimas e possuem apenas três entradas na ACL

ACLs com mais do que as três entradas são chamadas extendidas, a extensão de uma ACLs contém uma máscara entrada e pode conter qualquer número de usuários e de grupos nas entradas.

6

Page 7: ACL Linux - UFMAgeraldo/soii/8.ACL.pdfSolaris, MacOs, e Windows permitem múltiplos streams de informações serem associados a um arquivo. Nesses sistemas existem chamadas especificas

Funcionamento

7

Page 8: ACL Linux - UFMAgeraldo/soii/8.ACL.pdfSolaris, MacOs, e Windows permitem múltiplos streams de informações serem associados a um arquivo. Nesses sistemas existem chamadas especificas

Funcionamento Cada entrada é composta de um tipo, um

qualificador e o conjunto de permissões.

◦ Ex: user::rwx , user:name:rwx

Os bits da permissão de grupo (o mesmo do modelo tradicional) definem um limite superior no qual todas as ACL de grupo deverão cumprir.

◦ Esse limite superior garante que aplicações não compatíveis não comecem a dar permissões adicionais quando usando POSIX ACL

8

Page 9: ACL Linux - UFMAgeraldo/soii/8.ACL.pdfSolaris, MacOs, e Windows permitem múltiplos streams de informações serem associados a um arquivo. Nesses sistemas existem chamadas especificas

Funcionamento - Máscara Numa ACL extendida a classe grupo

contém entradas para usuários adicionais ou grupos, porém isto resulta em um problema: ◦ algumas dessas entradas adicionais podem

conter permissões que não estão contidas na entrada grupo proprietário

◦ assim as permissões da entrada de grupo proprietário podem diferir das permissões da classe grupo.

◦ A solução desse problema é criar uma entrada máscara

9

Page 10: ACL Linux - UFMAgeraldo/soii/8.ACL.pdfSolaris, MacOs, e Windows permitem múltiplos streams de informações serem associados a um arquivo. Nesses sistemas existem chamadas especificas

ACLs extendidas Em ACLs mínimas a classe de permissão

de grupo é a mesma da permissão de grupo dono do objeto.

Com ACLs estendidas, as permissões da classe de grupo irão ser mapeadas usando a entrada de máscara.

◦ Permissões que estão presentes na entrada ACL da classe grupo e que estão também presentes na máscara serão efetivadas

◦ Se as permissões não estão presentes na máscara, não serão usadas

10

Page 11: ACL Linux - UFMAgeraldo/soii/8.ACL.pdfSolaris, MacOs, e Windows permitem múltiplos streams de informações serem associados a um arquivo. Nesses sistemas existem chamadas especificas

Mapeamento de entradas ACL para Modo de permissões por bits

11

Page 12: ACL Linux - UFMAgeraldo/soii/8.ACL.pdfSolaris, MacOs, e Windows permitem múltiplos streams de informações serem associados a um arquivo. Nesses sistemas existem chamadas especificas

Algoritmo

1. Se o usuário é o dono e tem permissões, o acesso é permitido;

2. Se a ACL contém um usuário e ele tem as permissões necessárias, ele irá para a mascára de entrada (explicado abaixo). Caso contrário, o acesso é negado;

3. Se o usuário faz parte do grupo dono do arquivo, ou se o usuário faz parte de um grupo que contém uma entrada ACL, então:

1. Se as entradas contém as permissões necessárias, ele irá para a mascára de entrada;

2. Caso contrário, o acesso é negado.

4. Se a solicitação não se encaixar nas permissões acima, então:

1. Se as permissões para outros usuários tiver as permissões necessárias, o acesso é permitido;

2. Caso contrário, o acesso é negado.

5. Checando a mascára de acesso:

1. Se a mascára de acesso contém as permissões necessárias, o acesso é permitido;

2. Caso contrário, o acesso é negado.12

Page 13: ACL Linux - UFMAgeraldo/soii/8.ACL.pdfSolaris, MacOs, e Windows permitem múltiplos streams de informações serem associados a um arquivo. Nesses sistemas existem chamadas especificas

Extended Attributes São metadados dos objetos do sistema de

arquivos

Tem o formato nome,valor

O Linux usa para implementar as ACLs

Outros sistemas operacionais como Solaris, MacOs, e Windows permitem múltiplos streams de informações serem associados a um arquivo. Nesses sistemas existem chamadas especificas para ACLs

13

Page 14: ACL Linux - UFMAgeraldo/soii/8.ACL.pdfSolaris, MacOs, e Windows permitem múltiplos streams de informações serem associados a um arquivo. Nesses sistemas existem chamadas especificas

Implementações da ACL

O Linux não tem sistema de chamadas ACL

ACLs são passadas entre o usuário e o kernel por EAS – Extended Attributes.

Isto reduz o número de interfaces sistema, mas com o mesmo número de operações finais.

A interface EA é mais fácil de se adaptar às necessidades futuras, tais como identificadores não-numérico de usuários e grupos na ACL entradas.

14

Page 15: ACL Linux - UFMAgeraldo/soii/8.ACL.pdfSolaris, MacOs, e Windows permitem múltiplos streams de informações serem associados a um arquivo. Nesses sistemas existem chamadas especificas

Máximo de entradas ACLs

XFS 25

Ext2, ext3 32

ReiserFS, JFS 8191

•A maioria dos sistemas Unix que suportam ACLs tendem limitar o número

de entradas autorizadas a alguns ACL número razoável.

•A tabela abaixo mostra os limites de entradas ACLs em alguns sistemas de

arquivos Linux.

15

Page 16: ACL Linux - UFMAgeraldo/soii/8.ACL.pdfSolaris, MacOs, e Windows permitem múltiplos streams de informações serem associados a um arquivo. Nesses sistemas existem chamadas especificas

ACLs e NFS Requer duas coisas

um mecanismo a fim de que todas as decisões acesso, sejam realizadas de uma forma homogênea.

as extensões para o protocolo NFS para manipular ACLs em sistemas de arquivos montados remotamente

16

Page 17: ACL Linux - UFMAgeraldo/soii/8.ACL.pdfSolaris, MacOs, e Windows permitem múltiplos streams de informações serem associados a um arquivo. Nesses sistemas existem chamadas especificas

ACLs e NFS O protocolo NFS executa do lado do cliente

caching para melhorar a eficiência

Decisões como a que recebe o acesso à leitura são realizados localmente em cache de dados sobre o cliente.

Estas decisões são feitas com a suposição de que o arquivo Modo de permissões bits e os IDs do proprietário e grupo proprietário são suficientes para fazer isso.

O que não é verdade sempre.

17

Page 18: ACL Linux - UFMAgeraldo/soii/8.ACL.pdfSolaris, MacOs, e Windows permitem múltiplos streams de informações serem associados a um arquivo. Nesses sistemas existem chamadas especificas

ACLs e NFS Para resolver esse problema existem duas

estratégias.

Um é o de tornar o algoritmo de verificação de acesso de uso no cliente.

O outro é delegar decisões de acesso para o servidor e, possivelmente cache dessas decisões para um período de tempo definido com o cliente.

18

Page 19: ACL Linux - UFMAgeraldo/soii/8.ACL.pdfSolaris, MacOs, e Windows permitem múltiplos streams de informações serem associados a um arquivo. Nesses sistemas existem chamadas especificas

Aplicações suporte a ACL

Eiciel

Front-end para administrar ACLs semelhante a interface do NTFS (Windows)

19

Page 20: ACL Linux - UFMAgeraldo/soii/8.ACL.pdfSolaris, MacOs, e Windows permitem múltiplos streams de informações serem associados a um arquivo. Nesses sistemas existem chamadas especificas

Eiciel

20

Page 21: ACL Linux - UFMAgeraldo/soii/8.ACL.pdfSolaris, MacOs, e Windows permitem múltiplos streams de informações serem associados a um arquivo. Nesses sistemas existem chamadas especificas

GERENCIANDO ACLs Os comandos básicos para gerenciamento

de ACL são:

setfacl - Seta atributos no arquivo ou pastagetfacl - Verifica atributos nos arquivos ou pastas

21

Page 22: ACL Linux - UFMAgeraldo/soii/8.ACL.pdfSolaris, MacOs, e Windows permitem múltiplos streams de informações serem associados a um arquivo. Nesses sistemas existem chamadas especificas

Sintaxe do setfacl :

setfacl [opções] [{-m|-x} especificações] [{-M|-X} arquivo_de_acl] arquivo

As principais opções são:

setfacl -b arquivoRemove todas as ACLs do arquivo

setfacl -k arquivoRemove a ACL padrão

setfacl –RSeta a ACL de forma recursiva

Setando uma ACL:

setfacl -m u:nome_usuario:rwx arquivoModifica a ACL adicionando um usuário

setfacl -R -m g:nome_grupo:rwx pastaModifica a ACL adicionando a um grupo. Estas permissões vão servir para todos os arquivos e sub-pastas.

setfacl -x u:nome_usuario arquivoRemove a ACL referente ao usuário do arquivo especificado.

22

Page 23: ACL Linux - UFMAgeraldo/soii/8.ACL.pdfSolaris, MacOs, e Windows permitem múltiplos streams de informações serem associados a um arquivo. Nesses sistemas existem chamadas especificas

EXEMPLOCriamos duas pastas para servir de cobaia e vamos colocar o grupo de acesso destas pastas o grupo "compartilhamento“

#mkdir -p /home/share/private#chown -R :compartilhamento /home/share#chmod -R 770 /home/share

Criamos um usuário de cobaia também e o colocamos no grupo do compartilhamento

#useradd -G compartilhamento cobaia

Vamos verificar a situação da pasta

# getfacl /home/share/privategetfacl: Removing leading '/' from absolute path names# file: home/share/private# owner: root# group: compartilhamentouser::rwxgroup::rwxother::---

23

Page 24: ACL Linux - UFMAgeraldo/soii/8.ACL.pdfSolaris, MacOs, e Windows permitem múltiplos streams de informações serem associados a um arquivo. Nesses sistemas existem chamadas especificas

No samba Criadas as ACLs e dadas as devidas permissões

A criação de arquivos após a criação da ACL ainda terá como padrão o usuário e grupo de quem criou, e não será setada a ACL da pasta pai.

Para resolver este problema inserimos três tags no arquivo /home/samba/smb.conf

map acl inherit = yesinherit acl = yesinherit permissions = yes

Estas tags podem ser inseridas tanto na seção global como na de compartilhamento do samba, referenciando apenas algumas pastas.

Estas tags fazem referência à opção "herdar permissões do objeto pai para objetos filho".

24