한 파일의 보안 권한을 다른 파일로 복사


19

파일의 권한을 다른 권한으로 복제하고 싶습니다. 데이터를 복사하지 않고 권한 만 복사하고 싶습니다.

예를 들어, 새 파일 을 만들고 이미 존재하는 다른 파일과 동일한 권한을 갖기를 원합니다.


다른 파일과 동일한 권한이지만 파일이있는 디렉토리와 다른가?
PsychoData

답변:


28

icacls 와 텍스트 편집기 를 사용하여 몇 단계 만 거치면됩니다 .

먼저 원본 파일의 권한을 저장해야합니다

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

perms.txt실행 icacls한 폴더에서 방금 만든 파일 을 편집해야합니다 . 파일은 다음과 같아야합니다.

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

두 번째 행의 모든 ​​내용을 무시할 수 있습니다. 우리가 걱정하는 것은 첫 번째 행입니다. file1.bin를 새 파일 이름으로 변경하고 파일 file2.bin을 저장하십시오.

이제 두 번째 파일에 대한 파일 권한 만 복원하면됩니다. 이번에는 파일 이름이 포함되지 않았습니다. ( " 참조 된 모든 권한 또는 그룹이 호출자에게 할당 된 것은 아닙니다. "라는 오류가 표시되는 경우 관리자 권한 명령 프롬프트에서 프로그램을 다시 실행하십시오.)

icacls C:\test\ /restore perms.txt

작업을 다소 자동화하기 위해 스크립트에 넣을 수 있습니까?
PsychoData

2
할 수는 있지만 2 단계를 쉽게 수행하는 방법을 내 머리 꼭대기에서 생각할 수는 없습니다. 내가 스크립트로가는 어쨌든 경우, 그냥 사용 PowerShell의 모든 일을 할 것입니다 File.GetAccessControl()File.SetAccessControl()
스콧 체임벌린

4

일괄 처리로 만들려면 (하위 폴더의 하위 폴더 또는 모든 폴더에서 다른 드라이브의 동일한 폴더 / 파일 제한으로 보안 권한 복사) 다음 cpdacls.bat과 같은 내용의 파일을 만듭니다 .

@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

그런 다음처럼 실행하십시오 cpdacls.bat e:\ f:\.

대상 폴더의 폴더 구조는 소스 폴더 로 지정한 하위 폴더에 관계없이 루트에서 가져온 소스 폴더의 폴더 구조와 같아야 합니다.


4

가장 쉬운 방법은 PowerShell을 사용하여 다음을 실행하는 것입니다.

Get-Acl .\file1 | Set-Acl .\file2
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.