커맨드 라인에서 파일 소유권을 얻는 방법?


34

너무나 자주 소유권을 가져야하는 파일이 나옵니다. 나는 일반적으로 caclsntfs 권한을 변경하는 데 사용하지만 소유권을 가지지 않는 것 같습니다. * nix에서 나는 다음과 같은 것을 실행할 것이다 chown me:me <file>. 에 해당하는 창이 chown있습니까?


너무 나쁜 setACL이 위의 스크립트에서 작동하지 않습니다. Win XP, 7 및 8에 오류 메시지가 표시되며 문제가있는 것을 찾으

답변:


25

subinacl 은 소유권 및 ACL과 관련된 모든 작업을 수행하기위한 Windows sysadmin의 전원 도구입니다. 본인 이외의 다른 사람에게 소유권을 변경할 수 있습니다 ( GUI로는이를 수행 할 수 없음 ).

subinacl /file test.txt /setowner=domain\foo

이렇게하면 관리자가 아니어도 원하는 사용자에게 권한을 설정할 수 있습니다 (takeown.exe가 필요하다고 생각하는 경우).


Windows XP에는 유효하지 않습니다. SUBINACL.exe (Windows 2003 Resource kit)를 다운로드하여 Windows XP에서 사용할 수 있습니까?
Kiquenet

물론 넌 할 수있어! 아마 내가 어디서 왔을 까. 여기를 보십시오 .
crb

26

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 명령은 (? 및 *)를 사용한 혼합 패턴을 지원하지 않습니다.

파일 / 폴더의 소유자를 변경 한 후 파일에 대한 전체 권한을 할당 한 다음 파일을 읽거나 삭제할 수 있습니다.



SS64 더 나은 문서 링크가 있습니다 : ss64.com/nt/takeown.html
jpaugh

17

폴더와 그 안의 모든 것에 대한 소유권과 모든 권리를 갖습니다.

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}]]

takeown 참조 .

이카 클스 구문 :

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]]

icacls 참조 .


1
icacls는 긴 경로 이름을 질식시킵니다. "파일을 찾을 수 없습니다"라는 오류 메시지는 약간 오해의 소지가 있으며, 더 이상 icalcs가 메시지없이 트리의 나머지 부분을 처리하지 못하게합니다. 트리에서 더 깊게 SUBST 볼륨을 생성하는 트릭을 사용하여이 문제를 해결할 수 있습니다. Takeown.exe는 긴 이름을 허용합니다.
앤드류 데니슨

Windows XP에는 해당
Kiquenet

8

나는 이것이 정말로 오래된 게시물 이라는 것을 알고 있지만 Windows 7 이상에 내장 된 방법이 있습니다 (Windows Vista에있을 수도 있지만 확실하지는 않습니다). 재설정하려는 폴더의 에스컬레이션 된 명령 프롬프트에서 다음을 실행하십시오. 작업을 재귀 적으로 수행하도록 /t지시 icacls합니다.

icacls .\* /setowner %UserDomain%\%UserName% /t
icacls .\* /reset /t

첫 번째 명령은 소유자를 환경 변수를 통해 로그온 한 사용자로 재설정합니다. 물론 특정 이름을 대신 사용할 수 있습니다.

그런 다음 두 번째 명령은 권한을 트리에서 모든 하위 폴더 및 파일로 다시 상속하도록합니다.

이것이 미래의 누군가를 돕기를 바랍니다.


첫 번째 명령으로 충분했습니다.
Benoit Blanchon

6

권한 관리의 스위스 군용 칼인 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.


3

Windows Server 2003 R2 이상에서는 기본 제공 도구 인 icacls.exe 를 사용하여 명령 줄에서 소유권을 변경하고 기존의 모든 cacls.exe 조작을 확장 할 수 있습니다.

icacls.exe의 기본값은 "편집"모드이고, cacls.exe의 기본값은 "바꾸기"모드입니다. cacls의 작은 뉘앙스로 물린 사람 (한 번 이상)을 환영합니다!


icacls는 최신 버전의 창에 포함되어 있으며 모든 사용자에게 소유권을 할당 할 수 있기 때문에 좋습니다.
David


1

또 다른 대안은 fileacl 입니다. 대부분의 Windows 유틸리티와 달리 작고 개체의 "상속 / 상속하지 않음"플래그를 설정 / 설정 해제 할 수 있습니다.


0

Windows 도구를 사용하여 솔루션을 찾았습니다. cacls

cacls <file or directory> /E /T /G <user>:F

0
  1. 관리자 권한으로 명령 프롬프트를 열고 문제가있는 디렉토리로 변경
  2. 모든 파일의 소유권을 가져옵니다 ... 예 : takeown /f *.jpg
  3. 선택한 사용자에게 액세스 권한 부여 ... 예 : icacls *.jpg /grant "Everyone":F(영어가 아닌 Windows에는 "모두"가 존재하지 않을 수 있습니다. 예를 들어 독일어 Windows에서는 "Jeder"와만 작동합니다-Windows는 명령 옵션을 변환하는 실제 버머입니다!)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.