Copiar permissões de segurança de um arquivo para outro

13

Eu gostaria de replicar as permissões de um arquivo para outro. Eu não quero copiar os dados, apenas as permissões.

Por exemplo, criei um novo arquivo e quero que ele tenha as mesmas permissões que outro arquivo que já existia.

    
por TaoTao 13.09.2013 / 23:21

2 respostas

22

Você pode fazer isso em algumas etapas com icacls e um editor de texto.

Primeiro você deve salvar as permissões do arquivo original

icacls C:\test\file1.bin /save perms.txt

você precisará editar o arquivo perms.txt que você acabou de criar na pasta em que você executou icacls . O arquivo deve se parecer com isto:

file1.bin
D:AI(A;;0x1301bf;;;BU)(A;ID;FA;;;BA)(A;ID;FA;;;SY)(A;ID;0x1200a9;;;BU)(A;ID;0x1301bf;;;AU)

Você pode ignorar todas as coisas na segunda linha, tudo o que importa é a primeira linha. Altere o file1.bin para o seu novo nome de arquivo file2.bin e salve o arquivo.

Agora você só precisa restaurar as permissões de arquivo no segundo arquivo. Observe que não incluímos o nome do arquivo neste momento. (Se você receber um erro que diz " Nem todos os privilégios ou grupos referenciados são atribuídos ao chamador. " execute o programa novamente em um prompt de comando elevado.)

icacls C:\test\ /restore perms.txt
    
por 13.09.2013 / 23:33
3

Para fazer isso em lote (copiar pemissions de segurança de uma subpasta ou todas as pastas de uma unidade para a mesma pasta / restrição de arquivo em outra unidade), crie um arquivo cpdacls.bat com este conteúdo:

@echo off
for /r %1 %%f in (.) do call :icacls_one %%f %2

goto :eof

:icacls_one

icacls %1\*.* /save %TEMP%\perms.txt
icacls %2.%~pnx1 /restore %TEMP%\perms.txt
del /q %TEMP%\perms.txt

E, em seguida, execute-o como cpdacls.bat e:\ f:\ .

Note que a estrutura de pastas na pasta de destino deve ser a mesma que a estrutura de pastas na pasta de origem, tirada de sua raiz , não dependendo de qual subpasta você especificou como uma pasta de origem. / p>     

por 02.10.2014 / 09:12