답변:
subinacl 은 소유권 및 ACL과 관련된 모든 작업을 수행하기위한 Windows sysadmin의 전원 도구입니다. 본인 이외의 다른 사람에게 소유권을 변경할 수 있습니다 ( GUI로는이를 수행 할 수 없음 ).
subinacl /file test.txt /setowner=domain\foo
이렇게하면 관리자가 아니어도 원하는 사용자에게 권한을 설정할 수 있습니다 (takeown.exe가 필요하다고 생각하는 경우).
Windows Server 2003에서 표준 구성 요소로 처음 사용 된 "TAKEOWN.EXE"를 찾고 있는데 리소스 키트 항목이 있다고 생각합니다. Windows 7 및 최신 시스템에서 사용할 수 있습니다.
takeown /f <some-file-or-folder> /r
/r
지정된 폴더의 모든 자식에 대해 작업을 반복적으로 수행합니다. 와 달리 subinacl
소유권을 가져 오려는 사용자로 로그인해야합니다. 또는 단순히 "관리자"그룹에 소유권을 할당 할 수 있습니다.
SS64에 보존 된 설명서 사본은 다음과 같습니다 .
구문 TAKEOWN [/ s 컴퓨터 [/ u [도메인] 사용자 이름 [/ p [암호]]]] / f FileName [/ a] [/ r [/ d {Y | N}]]
키 / s 컴퓨터 원격 컴퓨터의 이름 또는 IP 주소입니다 (백 슬래시 사용 안 함). 기본값은 로컬 컴퓨터입니다. 이 매개 변수는 명령에 지정된 모든 파일 및 폴더에 적용됩니다.
/ u [Domain] UserName 지정된 사용자 계정의 권한으로 스크립트를 실행합니다. 기본값 = 시스템 권한
/ p [Password] / u 매개 변수에 지정된 사용자 계정의 암호입니다.
/ f FileName 파일 이름, UNC 경로 또는 디렉토리 이름 패턴. 와일드 카드 문자를 허용합니다 *
/ a 현재 사용자 대신 관리자 그룹에 소유권을 부여합니다.
/ r 지정된 디렉토리 및 하위 디렉토리의 모든 파일에 대해 재귀 작업을 수행합니다.
/ d {Y | N} 현재 사용자에게 지정된 디렉토리에 대한 "폴더 나열"권한이없는 경우 표시되는 확인 프롬프트를 표시하지 않고 대신 기본값을 사용하십시오. Y : 디렉토리의 소유권을 가져옵니다. N : 디렉토리를 건너 뜁니다. 이 옵션은 / r 옵션과 함께 사용해야합니다. / a 매개 변수를 지정하지 않으면 현재 컴퓨터에 로그온 한 사용자에게 파일 소유권이 부여됩니다.
takeown 명령은 (? 및 *)를 사용한 혼합 패턴을 지원하지 않습니다.
파일 / 폴더의 소유자를 변경 한 후 파일에 대한 전체 권한을 할당 한 다음 파일을 읽거나 삭제할 수 있습니다.
폴더와 그 안의 모든 것에 대한 소유권과 모든 권리를 갖습니다.
takeown /F somedir /A /R
icacls somedir /grant:r User:F /T
관리자 권한으로 명령 프롬프트 를 시작하십시오!
관리자 권한으로 명령 프롬프트를 시작해야했는데 Windows 8.1에서 효과적이었습니다. Windows 8.1의 어색함 때문에 "명령"을 검색하고 명령 프롬프트 아이콘을 마우스 오른쪽 버튼으로 클릭해야했습니다. "관리자 권한으로 실행"옵션을 보려면 작업 표시 줄에 명령 프롬프트가 고정되어 있지만 마우스 오른쪽 단추를 클릭하면 "관리자 권한으로 실행"옵션이 표시되지 않습니다.
Windows 10에서는 "관리자 권한으로 실행"을 오른쪽 클릭 옵션으로 사용할 수 있어야합니다.
테이크 타운 구문 :
takeown [/s <Computer> [/u [<Domain>\]<User name> [/p [<Password>]]]] /f <File name> [/a] [/r [/d {Y|N}]]
이카 클스 구문 :
icacls <FileName>[/GRANT [: r] <Sid>: <Perm> [...]] [/ Denegar <Sid>: <Perm> [...]] [/Remove [:g|:d]] <Sid> [...]] [/ t] [/ c] [/ l] [/ q] [/ setintegritylevel <Level>: <Policy> [...]]Icacls <Directory>[/ sustituir <SidOld><SidNew>[...]] [/ restore <ACLfile>[/ c] [/ l] [/q]]
나는 이것이 정말로 오래된 게시물 이라는 것을 알고 있지만 Windows 7 이상에 내장 된 방법이 있습니다 (Windows Vista에있을 수도 있지만 확실하지는 않습니다). 재설정하려는 폴더의 에스컬레이션 된 명령 프롬프트에서 다음을 실행하십시오. 작업을 재귀 적으로 수행하도록 /t
지시 icacls
합니다.
icacls .\* /setowner %UserDomain%\%UserName% /t
icacls .\* /reset /t
첫 번째 명령은 소유자를 환경 변수를 통해 로그온 한 사용자로 재설정합니다. 물론 특정 이름을 대신 사용할 수 있습니다.
그런 다음 두 번째 명령은 권한을 트리에서 모든 하위 폴더 및 파일로 다시 상속하도록합니다.
이것이 미래의 누군가를 돕기를 바랍니다.
권한 관리의 스위스 군용 칼인 SetACL을 살펴볼 수 있습니다 . 다음은 C : 드라이브에있는 모든 파일의 소유권을 "관리자"에게 할당하고 한 번에 모든 하위 개체에서 상속 보호를 제거하는 방법에 대한 예 입니다.
SetACL.exe -on "C:\\" -ot file -actn setprot
-op "dacl:np;sacl:nc"
-rec cont_obj
-actn setowner -ownr "n:S-1-5-32-544;s:y"
을 추가 할 수도 있습니다 -silent
.
Windows 2003, 2008 또는 Vista 또는 7의 경우 Takeown을 사용 하십시오 .
Windows 2000의 경우 Fileowners.pl을 사용하십시오 .