Recortar/colar arquivo entre pastas não mantém mais as permissões da pasta original

Recortar/colar arquivo entre pastas não mantém mais as permissões da pasta original

Nas unidades NTFS, o comportamento costumava ser que, quando um arquivo fosse movido, ele reteria as permissões do arquivo original, se a movimentação fosse feita para uma pasta no mesmo volume.

Eu sei disso por experiência e pode ser visto aqui: https://support.microsoft.com/en-us/kb/310316

Mas eu estava tentando mostrar esse comportamento hoje a um colega e simplesmente não funcionou. Cada vez que o arquivo simplesmente teria as permissões da nova pasta associada a ele.

Já tentei em 3 máquinas diferentes e não funciona mais assim. Quando isso mudou? E não, a configuração do registro mencionada anteriormente não está definida.

Alguma ideia de quando isso mudou?

[Editar]

Só um exemplo para ficar mais claro

Suponha que eu tenha essas pastas na minha unidade C.

  • C:\Compartilhado
    • \Trabalhando
    • \Final

E tenho quatro grupos: - Estagiários - Funcionários - Gestores - Staff (que tem os 3 anteriores como membros).

Agora, vamos considerar as permissões (simplificadas).

  • C:\Compartilhado
    • Não herda
    • Permite explicitamente controle total para administradores
    • Permite explicitamente modificar para gerentes
  • C:\Compartilhado\Trabalhando
    • Herda de Compartilhado
    • Permite explicitamente modificar para funcionários
  • C:\Compartilhado\Final
    • Herda de Compartilhado
    • Permite explicitamente a leitura para a equipe

Agora, vamos supor que eu tenha um arquivo na pasta Working, chamado Bullshit.doc.

Anteriormente, se o arquivo fosse movido (recortado/colado) da pasta Trabalho para a pasta Final, ele manteria as permissões originais, ou seja, Gerentes e Funcionários poderiam Modificar e Estagiários não teriam permissões.

Agora, quando tento mover o Bullshit.doc, ao ser movido, simplesmente herdará as permissões da pasta Final, ou seja, simplesmente perdoa que os Estagiários não tenham acesso.

Minha pergunta é: isso mudou, não foi? Ou estou ficando louco? Tenho 99% de certeza de que funcionou exatamente como descrito na KB.

Eu sei que tive problemas semelhantes a este no passado, quando usuários de nível superior moviam arquivos entre pastas (com diferentes conjuntos de permissões) e depois reclamavam que os estagiários não conseguiam ler os arquivos. Tive que explicar mais de uma vez que recortar/colar não funcionaria, que eles precisavam copiar/colar/excluir. Estava de volta ao Windows 2003 com certeza, mas eu poderia ter pelo menos 2008 R2.

[Editar 2] Agora com fotos!!!

Ok, então decidi tentar replicar. Com os arquivos reais e não com exemplos simples. Aqui está...

Então esta é a pasta de origem. Veja todas as permissões implícitas e uma permissão explícita. Alguma pasta

Agora, vamos criar um arquivo lá. E verifique as permissões.Apenas um documento aleatório

É hora de mover o arquivo para o destino. A pasta original era apenas uma pasta temporária. Vamos verificar as permissões da pasta de destino. Permissões muito menos complicadas

Depois de mover a pasta, vamos verificar suas permissões... Que coisa!!!

Hum... não é o que eu esperava. Mesmo que fosse apenas um arquivo, pelo que reuni na KB acima, ele deveria manter as permissões. E é assim que me lembro de ter se comportado.

Mas parece que mudou. E não consigo encontrar uma fonte oficial de quando isso aconteceu.

Isso me faz duvidar da minha sanidade.

Responder1

NTFSainda está evoluindo e mudando. Acredito que as mudanças no tratamento de permissões herdadas apareceram pela primeira vez no Vista e evoluíram ainda mais no Windows 7. A configuração do registro no seu link data do XP, então, pelo que eu sei, ela é ignorada nas versões mais recentes.

Para entender o que acontece quando alguém copia/move um arquivo, é preciso primeiro entender a diferença entre permissões implícitas e explícitas.

Permissões implícitassão herdados da pasta pai e, portanto, são armazenados com a pasta pai. Eles não são armazenados com as crianças e, portanto, não são móveis/copiáveis. Em outras palavras, essas permissões só se aplicam enquanto o filho está na pasta pai, porque elas vêm do pai.

Permissões explícitassão dados manualmente na pasta/arquivo e são armazenados em Listas de controle de acesso(ACL) como atributos NTFS. Eles podem ser considerados pertencentes ao item e, em alguns casos, podem ser movidos com ele se o sistema de arquivos de destino também for NTFS.

Algumas consequências desta arquitetura NTFS são:

  • Quando uma pasta/arquivo écopiado, novas entradas de destino serão criadas nas tabelas NTFS da pasta de destino. Portanto, o arquivo copiado perderá todas as permissões explícitas e herdará apenas de sua nova pasta pai.
  • Quando um arquivo/pasta émovido dentro do mesmo volume, sua entrada NTFS será movida, completa com todos os atributos e permissões contidos. Portanto, ele manterá todas as permissões explícitas, mas perderá as antigas permissões herdadas, ganhando em vez disso as da nova pasta pai.
  • Quando uma pasta/arquivo émovido entre diferentes volumes, a movimentação será tratada como uma cópia e não reterá nenhuma das permissões originais. A única diferença da cópia é que a fonte é excluída quando a cópia é concluída.
  • Um arquivo/pasta que possui apenas permissões herdadas não tem permissões para mover. Esse item sempre herdará as permissões da pasta pai.
  • Uma pasta/arquivo pode ser marcada como não herdando permissões de seu pai. Nesse caso, todas as suas permissões são armazenadas como ACLs, ou seja, como permissões explícitas.

Isso vai contra a maioria da documentação estabelecida, onde geralmente se afirma que quando uma pasta/arquivo é movido dentro do mesmo volume, ele manterá suas permissões NTFS originais, tanto implícitas quanto explícitas. Talvez isso já tenha sido verdade em versões mais antigas do Windows, mas foi verificado por mim e pelo autor da postagem como não sendo mais o caso de permissões implícitas no Windows 7 e no Windows 10.

Para obter um exemplo de regras de movimentação documentadas erroneamente, consulte o artigo Como as permissões de arquivos e pastas são tratadas ao mover ou copiar arquivos no Windows 2008 R2 e Windows 7. Este artigo foi a fonte da minha discussão abaixo com o autor da postagem, onde descobrimos juntos as verdadeiras regras que regem a cópia e movimentação em NTFS.

Responder2

Há um detalhe adicional importante a ser adicionado à excelente e abrangente explicação de harrymc, e esse detalhe acaba causando um comportamento dividido, onde uma movimentação de arquivo às vezes se comporta no estilo de 2003 e às vezes no estilo de 2008.

A maneira como as movimentações intra-volume do NTFS foram atualizadas em 2008/Vista e posteriores não é uma revisão completa, mas apenas a adição de uma segunda etapa em segundo plano.

Passo 1)MFT é atualizado; o arquivo é movido e mantém as permissões originais
(Assim como em 2003/XP e anteriores. As mudanças nesses sistemas operacionais param nesta etapa.)

Passo 2)As ACLs são atualizadas para eliminar as permissões herdadas da pasta pai original e aplicar as permissões herdadas da nova pasta pai.
(Esta é a etapa adicional que o 2008/Vista adicionou para que os arquivos tenham as permissões da pasta de destino.)

Entretanto, se o usuário que está realizando a movimentação tiverModificardireitos e não tem explicitamente aAlterar permissõescerto, o passo 2 irá falhar (mas não lhe dirá), e você acabará com o comportamento da velha escola, então parece que as coisas voltaram a 2003.

Nesse mesmo cenário, se alguém copiar o arquivo e depois excluir o original (da mesma forma que o sistema de arquivos lida com a movimentação entre volumes), tudo funcionará da maneira esperada.

Não existe uma solução elegante - ou você dá aos usuáriosAlterar permissõesdireitos entãoPasso 2pode ser bem-sucedido ou quaisquer arquivos movidos entre pastas com permissões diferentes no mesmo volume do servidor de arquivos manterão suas permissões originais até que sejam repropagados à força.

informação relacionada