As permissões de arquivo do Windows estão vinculadas ao arquivo ou ao local do sistema de arquivos?

4

As permissões de arquivo do Windows seguem:

  1. O arquivo ou ...
  2. A localização do sistema de arquivos

Digamos que eu tenha um arquivo em "C: \ MyFile.txt". Eu defini algumas permissões muito específicas neste arquivo.

Mais tarde, copio um novo arquivo por cima desse. O mesmo nome, a mesma localização do sistema de arquivos.

Herda as mesmas permissões ou traz suas próprias permissões?

    
por Deane 13.01.2011 / 14:59

3 respostas

12

No momento em que um arquivo é criado, ele recebe as permissões marcadas como Inheritable-by-files do diretório em que foi criado. Durante a vida útil desse arquivo, ele somente alterará as permissões se:

  • As permissões são alteradas diretamente no próprio arquivo
  • Uma alteração mais alta na árvore de diretórios afeta uma das permissões herdadas que ela já possui (adicionar ou subtrair).
  • Uma alteração mais alta na árvore de diretórios adiciona ou remove uma permissão herdada
  • Subindo na árvore, um administrador faz um push de "substituir todas as permissões para subordinar objetos", que sobrescreve quaisquer permissões no arquivo com aquelas que o administrador está empurrando para baixo na árvore de diretórios.

Uma coisa importante a ter em mente é que todas as permissões NTFS são explícitas . Uma permissão herdada é uma permissão com um conjunto de sinalizadores "Herdado", mas ainda é essa permissão. Para todos, exceto o ponto principal, o Windows precisa tocar em todos os arquivos abaixo do ponto em que a permissão herdável foi alterada para realizar a alteração.

É por isso que, se você fizer uma alteração de permissão no topo de uma árvore de diretório de 5 milhões de arquivos e apertar o botão "Cancelar" em pânico, você terá se ferrado. Para isso, as permissões serão aplicadas de forma inconsistente na árvore de diretórios de 5 milhões de arquivos e a única maneira de solucioná-lo é definir a permissão e deixá-la concluir o aplicativo e removê-la novamente. "O que removerá todas as permissões personalizadas abaixo desse ponto.

De qualquer forma ...

Como foi observado em outros lugares, mover um arquivo dentro do mesmo sistema de arquivos não conta como 'criar', portanto, ele retém todas as permissões que tinha quando foi iniciado. Um movimento entre os sistemas de arquivos é um 'create', então o arquivo receberá permissões com base em onde ele é movido.

A maioria dos aplicativos considera uma 'sobrescrita' para realmente ser 'excluir e recriar', o que faz com que o arquivo sobrescrito receba permissões herdadas com base em sua localização. Se a sobregravação for, na verdade, 'zere o arquivo e preencha com novos dados', ele não será criado e manterá as permissões que tinha antes da sobrescrita; aplicativos que fazem isso são raros.

    
por 13.01.2011 / 16:29
2

A resposta é: você perderá as configurações de permissões, se você irá substituir o arquivo pelo novo (o novo arquivo trará suas próprias permissões - dependendo de qual caminho você usará para movê-lo para o antigo), e assim será feito se você simplesmente copiar o arquivo em outro lugar. Ele não perderá as configurações de permissões, se você simplesmente renomeá-lo ou mover para um diretório diferente.

Veja Como funcionam as permissões no technet e Compreendendo as permissões do Windows NTFS para obter mais detalhes sobre o tópico.

Explicação mais específica: link (obrigado kwbaker por o link)

A linha de buttom:

When a file is Copied, it will inherit the permissions of the folder it is copied to. If the file is Moved - it will retain its original permissions at its new location. (Jeff Hengesbach)

    
por 13.01.2011 / 15:13
0

Alexey está correto - embora as permissões sejam propriedades de arquivos e diretórios (em vez de locais), diferentes métodos de movimentação / cópia podem ter efeitos diferentes nessas permissões. Esta página tem um breve resumo.

    
por 13.01.2011 / 16:17