Permissão NTFS diferente em subpastas

4

Eu tenho em nosso servidor uma pasta para cada cliente. Dentro dessa pasta existem subpastas para cada projeto que pertence a esse cliente.

Meu problema é que recursos diferentes na empresa lidam com os diferentes projetos e só devem ter acesso aos seus projetos dentro de cada cliente.

Agora, quando um novo usuário precisa de acesso a um projeto, eu tenho que ir para a pasta de clientes (que é compartilhada) e conceder acesso, em seguida, na pasta específica do cliente e conceder acesso a eles. a pasta e selecione o projeto e conceda-lhes acesso.

Existe uma maneira de apenas selecionar a pasta do projeto para conceder acesso e ter uma maneira que todas as pastas que estão na cadeia de distribuição também acessem para que o usuário possa realmente ler os arquivos?

    
por jvanderh 13.11.2009 / 15:07

2 respostas

5

Se a visibilidade das subpastas não for um problema, você pode considerar adicionar uma permissão como "Usuários autenticados / Listar conteúdo da pasta / somente esta pasta" às pastas pai. Essa permissão não herdará pastas filhas, e a enumeração baseada em acesso não permitirá que os usuários "vejam" subpastas às quais não tenham acesso, mas acabaria com a necessidade de aplicar permissões às pastas pai.

Exemplo:

 [ folder ] Clients
     |
     | -- [ folder ]  Client A
     |
     | -- [ folder ]  Client B
     |        |
    ...       | -- [ folder ] Project A
              |
              | -- [ folder ] Project B
             ...

Assumindo uma permissão herdável na raiz de "Administradores / Controle total" e "SISTEMA / Controle total", adicione a permissão "Usuários autenticados / Listar conteúdo da pasta / Somente esta pasta" (definida na caixa de diálogo "Avançado" na caixa de diálogo "Segurança" das propriedades da pasta) para a raiz. Se a enumeração baseada em acesso estiver ativada, isso fará com que as pastas do cliente às quais o usuário recebeu acesso fiquem visíveis ao listar o diretório raiz. Você não precisa usar "Usuários autenticados", obviamente. Você poderia algo muito mais criativo.

Supondo que você faça a mesma coisa em cada pasta de cliente discreta, os usuários autenticados poderão enumerar toda a lista de clientes, mas apenas os projetos em cada cliente aos quais eles têm acesso.

Digamos que você queira restringir a visibilidade das pastas. Este é um ótimo aplicativo para aninhamento de grupos do Active Directory. No exemplo abaixo, deixarei de fora usando grupos locais de domínio. Tecnicamente, a melhor prática da Microsoft é usar um aninhamento de grupos globais em grupos locais de domínio aos quais a permissão é aplicada. Se você planeja permanecer em um único ambiente de domínio (e não confia em florestas externas), não precisa seguir essa prática necessariamente. Para facilitar a explicação, vou usar apenas grupos de segurança glocal.

Crie um novo grupo de segurança global para cada projeto para cada função que estará presente:

  • Cliente B, Projeto B - Revisores - Permitido ler o conteúdo do Projeto B do Cliente B
  • Cliente B, Projeto B - Colaboradores - Permitido modificar o conteúdo do Projeto B do Cliente B

Aplique a permissão em cada pasta do projeto conforme descrito pelos nomes dos grupos. O grupo "Revisores" receberia a permissão "Ler" e o grupo "Colaboradores" receberia a permissão "Modificar",

Crie um novo grupo de segurança global para cada cliente:

  • Participantes do projeto do cliente B

Coloque os dois grupos Cliente B, Projeto B ... na lista de associações do grupo Participantes do projeto B . Na pasta do cliente nomeado, conceda ao grupo Participantes do Projeto B a permissão "Listar Conteúdo da Pasta / Somente Esta Pasta".

Crie um novo grupo de segurança global para todos os participantes do projeto:

  • Todos os participantes do projeto do cliente

Coloque os Participantes do Projeto B do Cliente e quaisquer outros grupos de clientes na lista de associações do grupo Todos os Participantes do Projeto . Na pasta raiz, conceda ao grupo Todos os participantes do projeto do cliente a permissão "Listar conteúdo da pasta / somente esta pasta".

Quando um usuário entra em um projeto, adicione-o ao grupo apropriado para o projeto ao qual ele está ingressando. Devido ao aninhamento do grupo e às permissões aplicadas, o usuário terá automaticamente acesso para enumerar a pasta raiz e a (s) pasta (s) do cliente fornecida (s) para o (s) projeto (s) com o qual está envolvido.

    
por 13.11.2009 / 15:39
1

A questão aqui é que você pode apenas querer dar a esse usuário acesso ao projeto em particular, e é isso, o Windows não pode saber quais são suas intenções quando você adiciona este usuário à pasta de projetos, portanto não faz nada.

Você pode criar scripts usando CACLS , para especificar a pasta do projeto que o usuário tem acesso e irá escrever as outras permissões para você (se elas forem padrão todas as vezes)

No entanto, a solução da Evans é uma maneira muito mais elegante de fazer isso e, depois de configurada, você pode ignorá-la.

    
por 13.11.2009 / 15:13