O Controle De Acesso Alista o Acl


  Share  
|


Um variant óbvio da matriz do controle de acesso deve armazenar cada coluna com o objeto que representa. Assim, cada objeto associou com ele um jogo dos pares, com cada par que contem um assunto e um jogo das direitas. O assunto nomeado pode alcançar o objeto associado usando algumas daquelas direitas. Mais formalmente:

Deixe S ser o jogo dos assuntos, e R o jogo das direitas, de um sistema. Um Access Control List (ACL) l é um jogo dos pares l = {(s, r): s incluído em S, em r incluídos em R}. Deixe o acl ser uma função que determine o Access Control List l associado com um objeto particular o. A interpretação do acl(o) do Access Control List = {(silicone, ri): 1 < = i < = n} é que o silicone sujeito pode alcançar o se usando para a direita no ri.

Uma edição é a matéria da permissão do defeito. Se um assunto não for nomeado no ACL, não tem nenhuma direita sobre o objeto associado. Em um sistema com muitos assuntos, o ACL pode ser muito grande. Se muitos assuntos tivessem a mesma direita sobre a lima, se poderia definir um "wildcard" para combinar todos os assuntos unnamed, e dá-lhes direitas do defeito.

EXEMPLO: UNICOS 7.0 ACLs têm entradas do formulário (usuário, grupo, direitas). Se o usuário estiver no grupo nomeado, ou têm aquelas direitas sobre o objeto. Para o exemplo, o triplet (o holly, maceranch, r) dá o holly do usuário lido (r) acesso sobre o objeto somente quando o holly tiver o maceranch como seu grupo.

Se o usuário ou o grupo forem especificados como "*", esse caráter está feito exame para combinar todos os usuários ou todos os grupos. Assim, (holly, *, r) dá o holly leu a permissão sobre o objeto não obstante o grupo que está dentro; (*, o maceranch, r) dá toda a permissão lida usuário sobre o objeto quando esse usuário está no maceranch do grupo.


Abreviaturas de listas do controle de acesso

Alguns sistemas abrevíam listas do controle de acesso. A base para o controle de acesso da lima no sistema operando-se de UNIX é desta variedade. Os sistemas de UNIX dividem o jogo dos usuários em três classes: o proprietário da lima, o proprietário do grupo da lima, e todos usuários restantes. Cada classe tem um jogo separado das direitas.

EXEMPLO: Os sistemas de UNIX fornecem lêem (r), escrevem (w), e executam (x) direitas. Quando o bishop do usuário cría uma lima, suponha que está no vulner do grupo. Inicialmente, o bishop pede que possa ler de e escrever à lima, que estejam permitidos aos membros do grupo ler da lima, e que ninguém mais têm o acesso à lima. Então as permissões seriam rw para o proprietário, o r para o grupo, e os nenhuns para outros.

As permissões de UNIX são representadas como três triplets. O primeiro é as direitas do proprietário; o segundo, direitas do grupo; e o third, outras direitas. Dentro de cada triplet, a primeira posição é r se o acesso lido for permitido ou se não for; a segunda posição é w se escreva o acesso for reservado ou se não for; e a terceira posição é x se execute o acesso for reservado ou se não for. As permissões para a lima do bishop seriam rwr.

Uma pergunta interessante é como os sistemas de UNIX atribuem a posse do grupo. Tradicional, os sistemas de UNIX atribuem o grupo ID principal eficaz do processo criador. Mas em alguns casos isto não é apropriado. Por exemplo, suponha a linha trabalhos do programa da impressora usando permissões do grupo; diga que seu grupo é lpdaemon. Então, quando um usuário copía uma lima no diretório de carretel, o lpdaemon deve possuir a lima de carretel. A maneira a mais simples reforçar esta exigência deve fazer o grupo do diretório de carretel possuído pelo lpdaemon e ter a posse do grupo herdada por todas as limas criadas nesse diretório. Alguns systemsnotably, systemsaugment que de Solaris e de SunOS a semântica de modalidades da proteção de lima ajustando o setgid mordeu no diretório quando todas as limas criadas no diretório deverem herdar a posse do grupo do diretório contendo.


As abreviaturas de listas do controle de acesso, tais como aqueles suportados pelo sistema operando-se de UNIX, sofrem de uma perda do granularity. Suponha que um sistema de UNIX tem cinco usuários. Anne quer permitir que Beth leia seus lima, Caroline para escrever-lhe, Della a ler-lhe e escrever, e Elizabeth para executá-lo. Porque há somente três jogos das permissões e cinco desejaram arranjos das direitas (Alice including), três triplets são insuficientes permitir todas as modalidades desejadas do acesso. Daqui, Alice deve comprometer, e dê a alguém mais direitas do que deseja ou dá a alguém poucas direitas. Similarmente, o controle de acesso tradicional de UNIX não permite que se diga "todos mas o usuário Fran"; para fazer este, um deve criar grupos de todos os usuários exceto Fran. Tal arranjo é incómodo, mais assim porque somente um administrador de sistema pode criar grupos.

Muitos sistemas aumentam abreviaturas de ACLs com ACLs full-blown. Este esquema usa as abreviaturas de ACLs como os controles da permissão do defeito; o ACL explícito cancela os defeitos como necessitados. O método exato varia.

EXEMPLO: A versão da IBM do sistema operando-se de UNIX, chamada AIX, usa um ACL (chamado "estendeu permissões") aumentar as abreviaturas tradicionais de UNIX do ACL (chamado "permissões baixas"). Ao contrário de ACLs tradicional, o AIX ACL permite que se especifique permissões ser adicionado ou suprimido do jogo do usuário. Como UNICOS, AIX baseia fósforos na identidade do grupo e do usuário. O algoritmo específico (usar a terminologia de AIX, em que "as permissões baixas" são as abreviaturas de UNIX de ACLs e "de permissões prolongadas" é entradas unabbreviated do ACL) é como segue.

  1. Determine o que ajustou S das permissões que o usuário tem das permissões baixas.

  2. Se as permissões prolongadas forem disabled, pare. O jogo S é o jogo do usuário das permissões.

  3. Comece a entrada seguinte nas permissões prolongadas. Se não houver não mais, pare. O jogo S é o jogo do usuário das permissões.

  4. Se a entrada tiver o mesmos usuário e grupo que o processo que pede o acesso, determine se a entrada negar o acesso. Se assim, pare. O acesso é negado.

  5. Modifique S como ditado pelas permissões na entrada.

  6. Vá a 3.

Como um exemplo específico, considere a seguinte respresentação de permissões do controle de acesso de um sistema de AIX para a lima xyzzy.

     
atributos: owner(bishop) baixo        das 
permissões:    group(sys)        do rw-:       r --        outro:           --- as permissões 
prolongadas permitidas        especificam           a 
licença      do rw-        u:holly            - w      u:heidi, rw-        u:matt            da licença      dos g=sys        negue              - w      u:holly, g=faculty

Nas linhas prolongadas das permissões, o primeiro campo determina o que a linha significa ("especifique" para cancelar as permissões baixas, "licença" para adicionar direitas, e "negue" às direita da supressão); o segundo campo indica as direitas envolvidas, usando o triplet tradicional de UNIX; e o terceiro campo define o usuário ("u:") e grupo ("g:") involvido.

Neste exemplo, o holly pode ler xyzzy porque as primeiras e quartas linhas na seção prolongada das permissões cancelam a negação baixa da permissão do acesso a outro (a classe de que holly é um membro). Se o holly estiver trabalhando no grupo da faculdade, não pode escrever a xyzzy (a última linha) mas pode lê-la (primeira linha). O heidi do usuário, trabalhando no sistema do grupo, pode ler e escrever à lima (a linha do grupo nas permissões baixas dá a permissão lida heidi; a primeira linha da licença nas permissões que prolongadas a seção dá o seu escreve a permissão). Nesta maneira, as permissões prolongadas aumentam as permissões baixas.

Criação e manutenção de listas do controle de acesso

As execuções específicas de ACLs diferem nos detalhes. Algumas das edições são como segue.

  1. Que assuntos podem modificar o ACL de um objeto?

  2. Se houver um usuário privilegiado (tal como a raiz no sistema de UNIX ou o administrador em Windows NT), os ACLs aplicam-se a esse usuário?

  3. os grupos de sustentação do ACL ou os wildcards (isto é, podem os usuários ser agrupados em jogos baseados em uma noção do sistema do "grupo" ou em combinar de teste padrão)?

  4. Como as permissões contradictory do controle de acesso são seguradas? Se as concessões de uma entrada lerem privilégios somente e umas outras concessões escrevem os privilégios somente, que direito o assunto tem sobre o objeto?

  5. Se um ajuste do defeito for permitido, as permissões do ACL modificam-no, ou o defeito é usado somente quando o assunto não é mencionado explicitamente no ACL?

Porque estes isues são críticos ao uso correto de ACLs em um sistema, nós explorá-lo-emos mais detalhadamente.

Que assuntos podem modificar o ACL de um objeto?

Quando um ACL é criado, as direitas são instantiated. O chefe entre estas direitas é esse que nós nos chamaremos para possuir. Os possessors do para possuir para a direita podem modificar o ACL.

Criar um objeto cría também seu ACL, com algum valor inicial (possivelmente vazio, mas o criador é dado mais geralmente inicialmente todas as direitas, including o próprio, sobre o objeto novo). Pela convenção, o assunto com próprias direitas é permitido modificar o ACL. Entretanto, alguns sistemas permitem que qualquer um com acesso manipule as direitas.

EXEMPLO: O sistema R da base de dados relacional contem jogos dos n-n-tuples que fazem acima dos registros, e cada elemento de cada n-n-tuple tem atributos. Estes n-n-tuples são armazenados como tabelas, com os registros como as fileiras e os atributos como as colunas. Cada tabela define uma relação.

As direitas para manipular uma tabela (relação) incluem lido (para fileiras da leitura, perguntando usando a relação, ou definindo vistas), atualizam (para escrever a uma tabela), introduzem (para adicionar fileiras), suprimem (para suprimir fileiras), e gota (para suprimir tabelas). Cada um direito tem um modificador, chamado a opção da concessão, que se o jogo permitir que o possessor dê a direita a outra. Todo o usuário com acesso a uma tabela pode dar direitas a qualquer outro usuário, desde que a direita tem a opção da concessão. Daqui, possessão do acesso (e uma opção da concessão associada com o cada um direita), não posse, controles transferência das direitas.


Os ACLs aplicam-se a um usuário privilegiado?

Muitos sistemas têm usuários com privilégios extra. Os dois conhecidos melhor são o super-user da raiz em sistemas de UNIX e no usuário do administrador em Windows NT e 2000 sistemas. Tipicamente, ACLs (ou seus formulários degenerate) são aplicados em uma forma limitada a tais usuários.

EXEMPLO: Os sistemas de Solaris UNIX usam as abreviaturas do padrão de ACLs aos sistemas de UNIX e um ACL full-blown. As abreviaturas de ACLs são ignoradas quando a raiz é o assunto, mas os ACLs cheios aplicam-se mesmo à raiz.


os grupos de sustentação do ACL e os wildcards?

Em seus formulário, ACLs clássicos não os grupos de sustentação ou os wildcards. Na prática, os sistemas suportam um ou o outro (ou ambos) para limitar o tamanho do ACL e para fazer a manipulação das listas mais fácil. Um grupo pode refinar as características dos processos para ser permitidos o acesso ou ser um synonym para um jogo dos usuários (membros do grupo).

EXEMPLO: No exemplo de AIX acima, recorde que as linhas prolongadas da permissão (que correspondem ao ACL cheio) eram

as permissões prolongadas permitiram
especifique o rw- u:holly
licença - w u:heidi, g=sys
rw- u:matt da licença
negue - w u:holly, g=faculty

Inicialmente, o sistema do grupo tinha lido a permissão somente na lima. A segunda linha adiciona escreve a permissão para processos com heidi de UID e sistema de GID. A primeira linha dá processos com o holly de UID lido e escreve o acesso, a não ser que quando o GID do processo é a faculdade, que no caso o processo não pode escrever ao objeto (veja a quarta linha).


EXEMPLO: O sistema operando-se de UNICOS fornece ACLs similar àqueles de AIX, mas permite wildcards. Para o exemplo,

holly: maceranch: r  
significa que um processo com holly de UID e maceranch de GID pode ler o objeto com que o ACL é associado. A entrada do ACL
holly: *: r  
significa que um processo com holly de UID pode alcançar o objeto não obstante o grupo que o processo está dentro. E a entrada
*: maceranch: r  
significa que todo o processo com maceranch de GID pode ler o objeto.

Conflitos

Um conflito levanta-se quando duas entradas do Access Control List no mesmo ACL dão permissões diferentes ao assunto. O sistema pode permitir o acesso se qualquer entrada der o acesso, nega o acesso se qualquer entrada negar o acesso, ou aplica a primeira entrada que combina o assunto.

EXEMPLO: Se qualquer entrada em um AIX ACL negar o acesso, o assunto está negado o acesso não obstante a posição dessa entrada. Se não, se qualquer entrada conceder o acesso, o assunto é concedido o acesso. Este é um exemplo da negação que faz exame da precedência.


EXEMPLO: Os routers do Cisco aplicam a primeira entrada do Access Control List que combina o pacote entrante. Se nenhum se aplicar, o pacote entrante está rejeitado. Este é um exemplo da segunda aproximação, com uma régua do defeito de nega.


ACLs e permissões do defeito

Quando ACLs e as abreviaturas de listas do controle de acesso ou de direitas de acesso do defeito coexistirem (como em muitos sistemas de UNIX), há duas maneiras determinar direitas de acesso. O primeiro deve aplicar a entrada apropriada do ACL, se uma existir, e aplicar de outra maneira as permissões do defeito ou as abreviaturas de listas do controle de acesso. A segunda maneira deve aumentar as permissões do defeito ou as abreviaturas de listas do controle de acesso com os aqueles na entrada apropriada do ACL.

EXEMPLO: O AIX estendeu permissões cai na segunda categoria, porque modificam as permissões baixas.


EXEMPLO: Se um pacote que entra em um router do Cisco for destined para um anfitrião em uma rede atrás do router, mas o router não tem nenhuma entrada da lista do acesso que permite que o pacote esteja enviado, o pacote é rejeitado. Este é um exemplo do primeiro método, porque a permissão do defeito é nega.

Revogação das direitas

A revogação, ou a prevenção de um assunto que alcança um objeto, requerem que as direitas do assunto estejam suprimidas do ACL do objeto.

Impedir que um assunto alcance um objeto é simples. A entrada para o assunto é suprimida do ACL do objeto. Se somente as direitas específicas deverem ser suprimidas, estão removidas da entrada do assunto relevante no ACL.

Se a posse não controlar dar das direitas, a revogação é mais complexa.

EXEMPLO: O retorno ao sistema R. Supôr Anna deu direitas do update de Peter sobre uma relação T mas deseja-as agora revogá-las. O sistema R prendeu que após revogar, o estado da proteção do sistema deve ser como era antes que Anna deu a Peter todas as direitas. Especificamente, se Peter der a Mary direitas do update, quando Anna revogar direitas do update de Peter, direitas do update de Mary for revogado a menos que alguém à excepção de Peter lhe der também direitas do update.

Para executar este, o sistema R define uma relação chamada Sysauth. Os atributos desta relação são (usuário, tabela, grantor, lido, inserção, supressão, gota, update). Os valores dos atributos que correspondem às direita são timestamps que indicam quando a direita foi dada (à exceção do update, que nós trataremos do mais tarde). Para o exemplo, se Anna desse Peter leu direitas sobre os relatórios da relação no tempo 10, e Peter deu-os a Mary no tempo 20, a tabela seria como segue.

Usuário Tabela Grantor Lido

Peter

Relatórios

Anna

10

Mary

Relatórios

Peter

20


Se Anna revogasse direitas lidas de Peter, e Mary a obtivesse lesse direitas de Peter depois que Anna as deu a Peter, leu direitas seria revogada também. Entretanto, suponha que Michelle tinha dado também direitas lidas Mary sobre relatórios. Então suprimir a última fileira na tabela deixa uma entrada para Marynamely, essa de Michelle:

Usuário Tabela Grantor Lido

Peter

Relatórios

Anna

10

Mary

Relatórios

Michelle

5


Assim Mary pode relatórios lidos imóveis.

A direita do update tem um valor de tudo, de algum, ou de nenhuns. Estes valores consultam ao jogo das fileiras que podem ser mudadas. Se o valor for algum, um Syscolauth chamado segunda relação grava as colunas que o assunto pode atualizar. Esta tabela grava também épocas, e a revogação prosegue quanto para às outras colunas.

Exemplo: Listas Do Controle De Acesso De Windows NT

Windows NT fornece listas do controle de acesso para aquelas limas em divisórias de NTFS. Windows NT permite que um usuário ou um grupo leiam, escrevam, executem, suprimam, mudem as permissões de, ou façam exame da posse de uma lima ou de um diretório. Estas direitas são agrupadas nos jogos geralmente atribuídos chamados direitas genéricas. As direitas genéricas para limas são como segue.

  • nenhum acesso, por meio de que o assunto não pode alcançar a lima

  • lido, por meio de que o assunto pode ler ou executar a lima

  • mude, por meio de que o assunto pode ler, executar, escrever, ou suprimir a lima

  • controle cheio, por meio de que o assunto tem todas as direitas à lima

Além, o acesso especial direito genérico permite a atribuição de algumas das seis permissões.

Os diretórios de Windows NT têm também sua própria noção de direitas genéricas.

  • nenhum acesso, por meio de que o assunto não pode alcançar o diretório

  • lido, por meio de que o assunto pode ler ou executar limas dentro do diretório

  • aliste, por meio de que o assunto pode alistar os índices do diretório e pode mudar a um subdirectory dentro desse diretório

  • adicione, por meio de que o assunto pode criar limas ou subdirectories no diretório

  • adicione e leia, que combina as direitas genéricas adiciona e lê

  • mude, por meio de que o assunto pode criar, lido, para executar, ou escrever limas dentro do diretório e possa suprimir subdirectories

  • controle cheio, por meio de que o assunto tem todas as direitas sobre as limas e subdirectories no diretório

Como antes, a direita de acesso especial genérica permite a atribuição de outras combinações das permissões.

Quando os acessos de usuário uma lima, Windows NT examinarem primeiramente o ACL da lima. Se o usuário não estiver atual no ACL, e não for um membro de qualquer grupo alistado no ACL, o acesso está negado. Se não, se qualquer entrada do ACL negar o acesso de usuário, Windows NT nega o acesso (esta é uma negação explícita, que seja calculada primeiramente). Se o acesso não estiver negado explicitamente, e o usuário estiver nomeado no ACL (como um usuário ou um membro de um grupo), o usuário tem a união do jogo das direitas de cada entrada do ACL em que o usuário é nomeado.

Como um exemplo, suponha que Paul, Quentin, e Regina são usuários de um sistema de Windows NT. Paul e Quentin estão nos estudantes do grupo. Quentin e Regina estão na equipe de funcionários do grupo. O diretório e:\stuff tem seu Access Control List ajustado a (a equipe de funcionários, adiciona), (Quentin, mudança), (estudantes, nenhum acesso). Sob esta lista, a primeira entrada permite Regina de criar subdirectories ou limas em e:\stuff. A terceira entrada disallows todos os membros dos estudantes do grupo de alcançar o diretório. A segunda entrada permitiria que Quentin suprimisse subdirectories, exceto que Quentin está no grupo de estudantes, e em Windows NT que um explícito nega (como dado na terceira entrada) cancela todas as concessões da permissão. Daqui, Quentin não pode alcançar o diretório.

Agora, deixe Regina criar um plugh do subdirectory em e:\stuff. Disallows então o acesso de Paul, mas quê-lo permitir que Quentin tenha o acesso da mudança. Faz o seguinte.

  • Críe e:\stuff \ plugh; seu ACL é (a equipe de funcionários, adiciona), (Quentin, mudança), (estudantes, nenhum acesso).

  • Suprima a última entrada no ACL; da segunda entrada, isto dá o acesso da mudança de Quentin.

  • Adicione a entrada (Paul, nenhum acesso) ao ACL.

A última etapa é superfluous, porque Windows NT nega o acesso pelo defeito, mas é mais seguro adicioná-lo de qualquer maneira, a fim de que não os estudantes do grupo sejam dados direitas. Se isso acontecesse, Paul começaria aquelas direitas a menos que (Paul, nenhum acesso) a entrada estivesse atual.

este é um artigo adicionado por Fred Promover


Share  

© 2005-2010 E-articles.info All Rights Reserved - Terms and conditions