Conceda acesso a um subdiretório sem conceder acesso aos diretórios pai


12

Eu tenho um cenário que envolve um servidor de arquivos do Windows em que o "proprietário" deseja distribuir permissões para um grupo de usuários do seguinte tipo:

  • \\server\dir1\dir2\dir3: ler, escrever e executar
  • \\server\dir1\dir2: Nenhuma permissão
  • \\server\dir1: Nenhuma permissão
  • \\server: ler e executar

Para meu entendimento ( Atualização : este parágrafo inteiro está errado!), Não é possível fazer isso porque a Read & Executepermissão deve ser concedida a todos os diretórios pai em uma cadeia de diretórios para que o sistema operacional possa "ver" o filho diretórios e acessá-los. Sem essa permissão, você não pode obter o token de contexto de segurança ao tentar acessar o diretório aninhado, mesmo se tiver acesso total ao subdiretório.

Estamos procurando maneiras de contornar isso, sem mover os dados de \\server\dir1\dir2\dir3para \\server\dir4.

Uma solução alternativa em que pensei, mas não tenho certeza se funcionará, está criando algum tipo de link ou junção ao \\server\dir4qual é uma referência \\server\dir1\dir2\dir3. Não tenho certeza de quais opções disponíveis (se houver) funcionariam para esse fim se o usuário não tiver Read & Executepermissão \\server\dir1\dir2ou \\server\dir1, mas até onde eu saiba, as opções são estas:

  • Link simbólico NTFS,
  • Junção,
  • Hard Link.

Então as perguntas:

  • Algum desses métodos é adequado para atingir meu objetivo?
  • Existem outros métodos para vincular ou referenciar indiretamente um diretório, que não listei acima, que possam ser adequados?
  • Há alguma diretos soluções que não envolvam a concessão Read & Executede \\server\dir1ou \\server\dir2mas ainda permitindo o acesso a \\server\dir1\dir2\dir3?

Isso é possível. O usuário veria o diretório, mas, se não receber permissão de leitura, não poderá ver o conteúdo do diretório, fácil o suficiente para configurar.
Ramhound

Essa foi a minha pergunta também. Obrigado por levantar a discussão. E por atualizar sua pergunta para refletir imediatamente que sua suposição estava errada.
tyron

Respostas:


15

Você está enganado em sua suposição original, o que torna o resto da sua pergunta discutível.

A permissão mínima que um usuário precisaria dir1e dir2é Traverse Directory. Isso provavelmente será problemático para seus usuários - então eu recomendaria Traverse Directory e List Folders . Eles poderão navegar pelos dois diretórios principais e chegar dir3onde eles têm mais permissões, mas nem verão os arquivos existentes nos dois diretórios principais.

Permissões gostam Read & Executee Modifysão apenas coleções de permissões individuais. Eles são a primeira coisa que você vê, porque são os mais usados. Se você precisar se tornar muito granular (como essa situação), clique no Advancedbotão e procure as opções listadas lá.


Excelente informação (2)! Mas há algo que eu não entendi: "Isso provavelmente será problemático para seus usuários". Por que isso seria problemático? A nomeação é bastante direta, no sentido de que "Traverse" parece a única permissão necessária. Que tipo de problemas os usuários devem esperar?
tyron

12

Surpreendentemente, se o indivíduo tiver o caminho completo para uma subpasta na qual tenha pelo menos permissões R, ele NÃO precisará de permissões em nenhuma das pastas pai, nem mesmo atravessar. Eles podem simplesmente acessá-lo usando o UNC. (É claro que eles devem ter permissões de leitura no compartilhamento; apenas não em nenhuma pasta acima do nível que desejam acessar).

Eu não acreditei nisso quando me disseram, mas os testes provam isso.

Isso é contrário ao que eu pensava conhecer de permissões no mundo do Windows, e suspeito que será uma surpresa para muitos.

\ server \ folder1 \ folder2 \ folder3

Se não houver permissões para o Bilbo na pasta1 e na pasta2, mas o Bilbo tiver modificado (por exemplo) na pasta3, \ server \ folder1 \ folder2 \ folder3 o levará para lá, não há problema.


Isso funciona quando as folder1permissões SHARE e NTFS estão definidas, folder3então isso \\server\c$\folder1\folder2\folder3não funcionará.
precisa saber é o seguinte

11
Para adicionar a esta resposta, essa "capacidade" implícita de atravessar pastas pai para uma subpasta, por mais profunda que seja a qual você tenha acesso, é concedida pelo direito do usuário chamado "Ignorar verificação cruzada" concedido na Diretiva de Grupo por padrão para a maioria / todos os usuários na maioria dos casos. Veja itprotoday.com/management-mobility/…, pois não consigo colar o suficiente aqui para capturar a lista do que obtém a permissão em que circunstâncias.
Rook

A opção Ignorar verificação cruzada à direita também existe como um aprimoramento de desempenho do NTFS para permitir ignorar a verificação das permissões de cada pasta na árvore no caminho para abrir a pasta / arquivo final desejado, portanto, não é recomendável removê-la, a menos que você precise esse nível extremamente alto de segurança.
Rook

1

Uma solução semelhante ao MDMarra é definir permissões NTFS da seguinte maneira:

  1. dir1 : Conceder o conteúdo da pasta Listar (Atravessar pasta / executar arquivo, Listar pasta / ler dados, Ler atributos, Ler atributos estendidos, Ler permissões)
  2. MAS selecione Esta pasta apenas para Aplicar ao menu suspenso
  3. dir2 : Conceder o conteúdo da pasta Lista e Aplicar somente a esta pasta
  4. dir3 : conceda as permissões de leitura / gravação desejadas e aplique a esta pasta, subpastas e arquivos ou somente subpastas e arquivos

O resultado final é que o usuário / grupo pode ler cada pasta pai individual e detalhar a pasta filha sem outras pastas ou arquivos.


Isso não é semelhante à resposta de MDMarra, que é a resposta de MDMarra, explicitada em mais detalhes.
Scott

0

Então, eu testei isso no ambiente a seguir, pois queria obter uma resposta final testada, com as permissões mínimas necessárias para simplesmente atravessar pastas pela navegação (ou seja, pelo Windows File Explorer). Aqui estão os resultados para aqueles que querem travar as coisas com força.

Ainda não testei isso em produção para ver se existem efeitos colaterais estranhos ao reduzir o modelo de direitos de passagem bem testado "padrão" de

  • Traverse Folder
  • Pasta de lista
  • Atributos de Leitura
  • Leia Ext. Atributos
  • Permissões de leitura

... que são basicamente as permissões normais de "Leitura e execução" limitadas a "Esta pasta". Dito isso, até agora os testes em pequena escala têm sido completamente bons para os usuários simplesmente movendo, copiando e removendo arquivos no servidor e para os usuários que trabalham completamente com cópias de documentos do servidor, etc.


Meio Ambiente:

  • Servidor : Windows 2008 R2 - Diretiva de grupo pouco a não, nada mudou em relação aos direitos do usuário, configurado como um controlador de domínio, DNS integrado ao AD, configuração muito padrão / básica.
  • Cliente : Windows 7 SP1 - Instalação limpa em uma VM, reiniciada entre todas as alterações para garantir que a conexão com o servidor seja totalmente recriada a cada vez.
  • Ambas as instalações foram corrigidas pelo menos até o final de 2017, provavelmente atual para qualquer coisa relacionada a permissões que são muito usadas neste momento na linha do tempo do Windows.
  • Isso estava acessando uma pasta compartilhada montada como uma unidade de rede persistente (\ server \ share -> S :) na VM. As permissões de compartilhamento foram o grupo Leitura + Alteração para Usuários Autenticados, que cobre o usuário de teste e todos os outros que provavelmente precisarão de acesso em algum momento.
  • Após cada alteração, eu reiniciava a VM, abria o File Explorer e simplesmente navegava no compartilhamento normalmente, seguindo um caminho que eu sabia que o usuário de teste tinha esses direitos de passagem em relação aos que não possuíam.

Resultados:

  • Necessário na pasta raiz : ListFolder-ReadData + ReadAttributes (2x permissões)
  • Necessário nas subpastas : ListFolder-ReadData (permissão 1x)
  • Opcional : TraverseFolder - ExecuteFile

    -> Esta permissão opcional é importante apenas se o direito Ignorar verificação cruzada do usuário não tiver sido explicitamente permitido, pois está ativado por padrão em 99% das circunstâncias. Em outras palavras, o direito de usuário "Ignorar verificação inversa" (exposto na Diretiva de Grupo, não nas permissões de arquivo / pasta NTFS) sendo ativado evita esse privilégio completamente e efetivamente o habilita em todos os lugares por padrão. Nota: Eu não testei para ver se uma negação explícita desse direito, por sua vez, impediria o usuário de Ignorar a verificação transversal de entrar em vigor nessa instância específica, mas pode).

Informações suplementares: O direito do usuário "Ignorar verificação cruzada" permite que alguém passe passivamente para uma subpasta, com muitos níveis de profundidade, aos quais tenha acesso diretamente (ou seja, as permissões são definidas nesse arquivo / pasta, mas não necessariamente em qualquer outro local) o caminho do arquivo).

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.