Eu expliquei isso em um post de blog link , mas também é explicado abaixo.
Quando um arquivo é copiado, ele precisa criar um novo arquivo e atribuir um novo conjunto de permissões, para que ele obtenha as permissões da pasta pai, como você sabe.
Quando um arquivo é movido para outro volume, o que realmente acontece é que ele é copiado para o novo volume e o arquivo antigo é excluído. Assim, o mesmo processo é repetido como acima, pois é um novo arquivo novamente e precisa de permissões definidas.
Quando o arquivo é movido dentro do mesmo volume, nada realmente acontece (no nível do disco). Apenas altera a localização do caminho lógico do arquivo. Os dados reais e o arquivo físico no disco não foram tocados ou alterados. Já notou quando você move um arquivo de 5GB para outra pasta na mesma unidade, isso é feito quase que instantaneamente? É por isso que, na verdade, ele não foi movido, mas o ponteiro para onde o arquivo existe logicamente mudou. Como não foi modificado de forma alguma, as permissões também não mudam.
Esta é a razão para esse comportamento.
Edit: Algo que eu esqueci de mencionar ... O artigo da MS não é totalmente correto. Citação de MS:
By default, an object inherits permissions from its parent object, either at the time of creation or when it is copied or moved to its parent folder. The only exception to this rule occurs when you move an object to a different folder on the same volume. In this case, the original permissions are retained.
A citação acima se aplica somente aos objetos que receberam permissões SEC definidas EXPLICITAMENTE (desligue a herança). Como mencionado nos meus comentários, tudo se resume a manter as entradas da ACL tão eficientes quanto possível. Considere o seguinte exemplo:
Para manter a explicação simples, digamos que você tenha uma pasta definida para permitir que os usuários modifiquem apenas os direitos. Abaixo disso, existem milhares de arquivos e nenhum deles possui permissões explícitas. Não é muito eficiente criar ACLs para cada arquivo, pois eles são exatamente os mesmos perms, então ele define uma entrada ACL para a pasta. Este próximo bit é muito importante para entender; os próprios arquivos não têm ACL PERMS. Então, quando você move qualquer um desses arquivos para uma nova pasta no mesmo volume, o MS afirma que os perms se movem com ele (como na citação acima). Pergunte a si mesmo isso ... como? Não havia perms no arquivo em primeiro lugar para atravessar. Isso está incorreto e eu testei agora para confirmar. Digamos que a pasta de destino para a qual você está movendo o arquivo tenha perms para permitir que todos os grupos modifiquem apenas os direitos. Bem, como o arquivo não tem ACL diretamente, ele herda a ACL da pasta pai. Isso significa que os perms mudaram de modificador de usuários (pasta antiga) para todo mundo modificar (nova pasta).
Observe a diferença? Desta vez, mover um arquivo para outra pasta no mesmo volume realmente alterou os perms, algo que a MS diz que não faz. Acabei de encontrar um erro na documentação do MS desde 2000 lol ??
Agora, observe o mesmo cenário ao usar permissões explícitas. Se você definir permissões explícitas em um arquivo dentro dessa pasta (herança desativada) que, por exemplo, nega o acesso de leitura aos usuários, ele agora cria uma entrada NEW ACL especificamente para esse arquivo. Agora, quando você move o arquivo para um novo local, ele tem uma entrada de ACL diretamente relacionada a ele. Nesse caso, mover um arquivo para um novo local no mesmo volume RETENDE suas permissões (como as declarações do MS)!