Copiar permissões de arquivo de um diretório para outro


17

No fim de semana, copiei os dados de nossa empresa de um disco rígido para outro maior. Eu pensei que a permissão teria copiado, mas eles não.

Qual é a melhor (e mais rápida) maneira de copiar a permissão que foi originalmente definida nos meus novos dados, sem ter que copiar todos os dados novamente? Agora, meus usuários estão acessando os dados. Portanto, não deseja copiá-los novamente, pois as alterações podem ser perdidas.

Os dados estão hospedados no Windows Server 2008 R2

Respostas:


17

Eu acho que isso fará o trabalho:

robocopy source destination /E /COPY:SOU /xo /xn /xc /xx /LOG+:F:\Sec.log.

Cópias de " SOU ": S = Informações de segurança (ACLs de NTFS), O = Informações de propriedade, U = a Informações de edição

Se isso não funcionar, você pode usar este comando para fazer backup de permissões NTFS:

icacls d:\data /save ntfspermissions.txt /t /c

A opção / T também permite obter permissões de subpastas. A opção / C permite que continue mesmo se forem encontrados erros (embora ainda sejam exibidos erros).

E, em seguida, use este comando para restaurar as permissões:

icacls d:\ /restore ntfsperms.txt

Observe que no comando para salvar as permissões, especifiquei a pasta de destino D:\Data, mas quando as restaurei, especifiquei exatamente D:\como o destino. Você pode pensar que especificar D:\como o destino no comando restore pode, de alguma forma, atrapalhar as permissões em outras pastas nesse nível, mas como você pode ver no arquivo de saída ntfspermissions.txt, ele só possui informações sobre a pasta e subpastas Dados, para que é tudo que vai mudar.


1
Eu acho que icacls é a resposta aqui. 1
MDMarra 2/12/12

acordado. como ele não pode copiar novamente os dados, pois os dados já estão em uso e provavelmente foram alterados, o icacls para exportar / importar as permissões parece ser o melhor caminho a percorrer.
Rex

Obrigado por toda a sua ajuda, estou exportando icacls enquanto digito e tentarei importar mais tarde. Da próxima vez eu vou lembrar de verificar sempre o meu permissões
Simon Foster

3

Usando o PowerShell:

Get-Acl 'source path' | Set-Acl 'destination path'

1
Eu estava procurando o mesmo sem-vida. Parece-me que esta é uma resposta real. Outros dizem o que fazer antes da cópia, não depois como solicitado
alvaroc

0

Você pode tentar usar o Robocopy . AFAIK ainda funciona em versões mais recentes do Windows.


Você conhece a sintaxe que eu preciso? Eu tentei origem destino robocopy / secfix / xo / xn / xc da página acima e ele lança um erro sobre não saber quais permissões copiar
Simon Foster

1
Isso ocorre porque a robocópia só funcionará se o conteúdo do compartilhamento for inalterado. Parece que seus usuários provavelmente mudaram, certo? Eu não acho que robocopy é a ferramenta para usar agora (você deve tê-lo usado no começo embora)
MDMarra

Esse guia é para uma versão muito inicial do robocopy. Qual versão você está usando agora? Você pode se dar bem com a / copy: s agora para alterar apenas as ACLs NTFS, mas não tenho certeza ... Vou iniciar um pequeno teste agora.
HopelessN00b

0

Como Priaeas disse, robocopy.

Guia de referência útil para os switches usarem .

/ copyall ou / copy: o DATSOU copiará "tudo" (dados, atributos, timestamps, NTFS ACLs, informações sobre proprietário e auditoria).

/ COPY: copyflag [s]: O que COPY (o padrão é / COPY: DAT) (copyflags: D = Dados, A = Atributos, T = Carimbos de data / hora S = Segurança = ACLs NTFS, O = Informações do proprietário, U = Informações de edição) .


1
Ele diz especificamente que não deseja copiar os dados. Além disso, a robocopy copiará a segurança apenas se os arquivos não tiverem sido modificados. Como a participação está em produção agora, eu diria que é uma aposta segura que ela mudou.
MDMarra 02/07/2012

0
xcopy e:\*.* z: /T /E /I /H /K /X /Y

e:era a raiz de uma unidade física com vários compartilhamentos e todos os tipos de blocos de herança espalhados. z:era a "nova" unidade, nesse caso, uma unidade mapeada.

Apenas funcionou, não para os compartilhamentos, apenas as permissões.


-4

Programa CopyMik Freeware com Chaves:

/ CSF [FileMask1 [FileMask2 [....]]]] Copie os atributos de segurança do arquivo. Somente arquivos com a máscara especificada. (máscara padrão *)

/ CSD [DirMask1 [DirMask2 [....]]]] Copie os atributos de segurança da pasta. Somente pastas com a máscara especificada. (máscara padrão *)

http://www.superbasis.de/copymik/index.htm

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.