Permissões NTFS - Crie arquivos e pastas, mas evite exclusão e modificação

8

Objetivo: Uma pasta compartilhada na qual os usuários podem criar arquivos, mas não modificá-los ou excluí-los. Os usuários também devem poder criar subpastas.

Eu concedi ao meu grupo de segurança as seguintes permissões avançadas de NTFS:

  • Atravessar pasta / executar arquivo
  • Listar pasta / Ler dados
  • Atributos de leitura
  • Ler atributos estendidos
  • Criar arquivos / gravar dados
  • Permissões de leitura

Por meio de um processo de tentativa e erro, descobri que, ao NÃO conceder 'Atributos de gravação', isso tem o efeito de impedir que um usuário modifique / exclua arquivos existentes (que é o que desejo ). No entanto, eu realmente gostaria de uma explicação sobre o porquê isso funciona. A única teoria que tenho é que a exclusão / modificação de um arquivo altera os atributos do arquivo? Aqui está uma discussão ao longo das mesmas linhas .

EDIT - A segunda parte da minha pergunta é irrelevante, achei que tinha selecionado apenas 'Create Files / Write Data', mas também tinha 'Create Folders / Append Data' selecionado.

Ainda mais, eu quero que os usuários possam criar subpastas dentro da raiz, e eu descobri que, ao conceder 'Criar arquivos / gravar dados', isso permite exatamente isso. Mas, novamente, o nome sugere que essa permissão deveria permitir a criação de arquivos, não de pastas, então não entendo por que está funcionando? A explicação da Microsoft sobre o atributo 'Criar arquivos / gravar dados' é "Para pastas, especifica se um usuário pode criar arquivos dentro da pasta. Para arquivos, especifica se um usuário pode alterar arquivos ou substituir dados. " Não há menção da capacidade de criar subpastas dentro de uma pasta?

Então, basicamente, eu consegui o que me propus fazer, mas não entendo por que isso funciona?

    
por Fitzroy 25.04.2014 / 14:10

2 respostas

4

Through a process of trial and error, I have found that by NOT granting 'Write Attributes', this has the effect of preventing a user from modifying/deleting existing files (which is what I want). However, I would really like an explanation as to precisely why this works.

Esta é uma função de precisamente como ocorre uma modificação no arquivo. Quando você modifica um arquivo, o sistema operacional na verdade não modifica o arquivo que você está editando. Ele substitui o arquivo que você está editando pela cópia que você alterou. Então, essencialmente, uma modificação de arquivo leva uma cópia do arquivo original, carrega isto na memória (onde você modifica isto), apaga o arquivo original, e cria um arquivo novo com o mesmo nome no mesmo lugar. É por isso que as permissões NTFS Delete são necessárias para modificar arquivos - na verdade, se você verificar o Advanced permissions em um objeto NTFS, não haverá permissão Modify - uma modificação é apenas uma exclusão e uma gravação. p>

Assim, para criar essa nova cópia de um arquivo, é necessário gravar os atributos de arquivo desse novo arquivo ... e, é claro, a gravação de atributos requer a permissão Write attributes NTFS. Então é por isso que você não pode modificar um arquivo sem ter a permissão Write attributes NTFS.

Especificamente, graças a um bate-papo com Fitzroy , o Atributo de arquivo NTFS que precisa ser escrito sob o contexto de segurança do usuário (que pode seja, sem a permissão Write Attributes ), ao modificar um arquivo, mas não ao criar um completamente novo, seria o arquivo LastModificationTime . Esta é uma parte do atributo Standard Information , de acordo com um dos desenvolvedores do Microsoft Core Team .

    
por 25.04.2014 / 16:16
2

É verdade: não ter a permissão "Atributos de gravação" faz com que o usuário não consiga modificar seus arquivos. E de acordo com a documentação da Microsoft, não faz sentido. Mas modificando um arquivo não implica exclusão e recriação dele. Quando um aplicativo abre um arquivo para modificação, o sistema operacional não o exclui. Mas, o que o sistema operacional faz é bloquear o arquivo para impedir a modificação simultânea. Meu palpite é que bloquear o arquivo se enquadra no conceito de 'alterar atributos de arquivo'. Assim, não poder alterar atributos resulta em não poder modificar o arquivo.

Para a segunda parte da sua pergunta, não consigo reproduzir isso. Existem duas permissões diferentes que se aplicam a uma pasta: 'Criar arquivos / ...' e 'Criar pastas / ...' e trabalharam de acordo com a documentação durante meus testes.

    
por 25.04.2014 / 15:22