폴더와 파일에 대한 소유권과 권한 부여를 손쉽게 하기
윈도우 비스타 이후 윈도우들은 보안 정책이 상당히 강화되어 다른 윈도우의 파일들에는(사용자 계정 폴더 포함) 바로 접근할 수 없는 문제가 있습니다. 즉, 여러 개의 윈도우를 설치하여 멀티 부팅 상태로 사용 중일 때, 다른 윈도우에 속한 파일들에는 접근이 되지 않는 것이죠. 심지어 자기 자신(해당 윈도우)의 파일일지라도 어떠한 파일이나 폴더에는 접근이 차단되는 경우도 있습니다.
관리자 계정이지만 소유권 또는 권한이 없어 작업이 거부되는 모습.
이는 현재 사용 중인 계정에 해당 폴더와 파일에 대한 소유권이나 권한이 없기 때문에 발생하는 문제입니다. 현재 사용 중인 계정이 관리자 계정이라고 할 지라도 말이죠. 보안을 강화하기 위한 정책이지만 이전의 느슨했던 윈도우 XP 시절과 비교하면 상당히 골치 아파진 문제 중에 하나라고 할 수 있습니다.
이러한 문제는 해당 폴더와 파일에 대한 소유권과 권한을 획득함으로써 해결이 가능합니다. 소유권은 Takeown 을 통해, 권한은 Icacls 라는 명령을 통해 가져오는 것이 가능하죠. 하지만 언제나 그렇듯이 귀찮다는 게 문제입니다. 이러한 작업을 간단하게 마우스 오른쪽 버튼 클릭 메뉴를 통해 자동으로 진행할 수 있게 만들 수 있습니다. 간단하게 아래의 레지스트리를 받으셔서 병합해 주시면 됩니다. [* 윈도우 비스타, 윈도우 7, 윈도우 8 모두 적용 가능]
* 레지스트리 파일을 더블 클릭하거나, 마우스 오른쪽 버튼 클릭 -> 병합을 선택하시면 됩니다.
이후 소유권과 권한이 필요한 파일이나 폴더가 있으면 해당 파일/폴더를 마우스 오른쪽 버튼으로 클릭한 후 나오는 메뉴에서 모든 권한 부여를 선택하시면 됩니다.
파일/폴더에 모든 권한을 부여하기
참고로 폴더에 사용하는 경우 하위 폴더와 파일들까지 모두 소유권과 권한을 부여하게 됩니다. 참고하시고요.
다음으로 이 작업은 관리자 그룹 전체에 소유권과 권한을 부여하는 것이기 때문에, 사용하는 계정이 관리자 그룹의 계정이어야 합니다. 이 부분만 주의하시면 되겠네요.
Takeown 과 Icacls
해당 레지스트리를 통해 생성된 '모든 권한 부여' 가 하는 작업은 아래와 같습니다.
만약 대상이 파일인 경우 먼저 Takeown 명령을 통해 해당 파일에 대한 소유권을 가져옵니다.
다음으로 Icacls 명령을 통해 관리자 그룹에 해당 파일에 대한 모든 권한을 부여합니다.
takeown /f c:\file.exe
다음으로 Icacls 명령을 통해 관리자 그룹에 해당 파일에 대한 모든 권한을 부여합니다.
icacls c:\file.exe /grant Administrators:F
만약 대상이 폴더인 경우 먼저 Takeown 명령을 통해 해당 폴더와 하위 모든 폴더/파일에 대한 소유권을 가져옵니다.
다음으로 Icacls 명령을 통해 관리자 그룹에 해당 폴더와 하위 모든 폴더/파일에 대한 모든 권한을 부여합니다.
takeown /f c:\folder /r /d y
다음으로 Icacls 명령을 통해 관리자 그룹에 해당 폴더와 하위 모든 폴더/파일에 대한 모든 권한을 부여합니다.
icacls c:\folder /grant Administrators:F /t
* 이 때 Administrators 는 관리자 그룹입니다. 최고 관리자 계정인 Administrator 가 아닙니다.
* icacls 권한 종류 : N(권한 없음), F(모든 권한), M(수정 권한), RX(읽기 및 실행 권한), R(읽기 전용 권한), W(쓰기 전용 권한), D(삭제 권한)
* icacls 권한 종류 : N(권한 없음), F(모든 권한), M(수정 권한), RX(읽기 및 실행 권한), R(읽기 전용 권한), W(쓰기 전용 권한), D(삭제 권한)
이렇습니다. 작업 자체는 어려운 것이 아니지만 언제나 그렇듯이 저걸 직접 입력하려면 귀찮을 뿐입니다. 참고로 모든 권한 부여는 굳이 관리자 그룹이 아닌 특정 계정에만 부여해도 됩니다. 아래와 같이 말이죠.
icacls c:\file.exe /grant 신희돈:F
icacls c:\folder /grant 신희돈:F /t
icacls c:\folder /grant 신희돈:F /t
또는 사용자 계정을 아래와 같이 시스템 변수로 처리해도 됩니다. 이건 배치 파일로 작업을 만들 때 좋겠죠.
icacls c:\file.exe /grant %UserName%:F
icacls c:\folder /grant %UserName%:F /t
icacls c:\folder /grant %UserName%:F /t
이번 글은 여기까지 입니다. ^^
글에서 제공되는 레지스트리는 http://www.mydigitallife.info/take-and-grant-full-control-permissions-and-ownership-in-windows-7-or-vista-right-click-menu/ 에서 제공된 레지스트리를 한글에 맞춰 수정한 것입니다.
윈7로 부팅한후 D드라이브에 설치된 윈8을 그냥 삭제하고, 부팅 메뉴에 나오는건 bcdboot /l....로 윈7로만 부팅하게 하려고 윈7로 부팅을 했는데...
윈8 폴더와 파일 상당수가 그냥 삭제가 안되서 조금씩 지우다가 fastcopy로는 지워지는걸 우연히 발견하고 지웠는데... 이런 상황에서도 권한을 다 가져오면 싹 삭제 가능할까요?
윈8에서 작업하신 스샷인데... 윈7에서도 그냥 사용 가능하겠죠?
참 쓸데없이 질문이 길어서 죄송... ^^;;;;;
참고로 해당 레지스트리 파일은 윈도우 비스타, 윈도우 7, 윈도우 8 공용입니다. ^^
실사용은... 언젠가... ^^;;
찾아주세요,,,,,ㅠㅠ파티션 분할을 잘못했었나,,어떻게해야되나요~,
http://powerwin.tistory.com/276
혹시 takeown으로 HKEY등의 REG 키, 값의 관리자 권한도 얻기가 가능한가요??
예) takeown /f HKEY_LOCAL_MACHINE /r /d y
파일 문젠줄 알고 삽질하다가 보니 폴더문제더라구요...
내가 관리잔데 왜 권한이 없다고 하는지 한참 열받아있었는데
캐플님 포스트 덕분에 완전 쉽게 문제 해결했습니다. 정말 감사드려요!!!!
http://blogs.technet.com/b/koalra/archive/2008/03/05/2962724.aspx
1. 관리자 그룹에 소유권과 권한 부여
[code]
takeown /f C:\Windows\System32\mfpmp.exe
icacls C:\Windows\System32\mfpmp.exe /grant Administrators:F
[/code]
2. 자신의 계정에 소유권과 권한 부여
[code]
takeown /f C:\Windows\System32\mfpmp.exe
icacls C:\Windows\System32\mfpmp.exe /grant %Username%:F
[/code]
담아 놓으신 파일로.. 드디어 골머리 썩은 자료를 지웠습니다.
감사합니다.
권한 부여 하는 방식을 사용하여 파일 삭제, 복사, 이동 만 불가능 하도록 할 수 있는 방법이 있을까요 ...?
권한 부여에 대해서 처음 공부하다보니 모르는부분이 너무 많네요 조언좀 부탁 드릴께요 ^^;
F - 모든 권한
M - 수정 권한
RX - 읽기 및 실행 권한
R - 읽기 권한
W - 쓰기 권한
D - 삭제 권한
이 때 M 수정 권한은 RX,R,W 를 동시에 지정한 것과 같은 권한이고, RX 는 R, W 를 동시에 지정한 것과 같습니다. 참고로 여러 권한을 동시에 주고 싶을 땐 괄호로 묶어 (R,W) 와 같이 권한을 부여하면 됩니다.
이제 권한을 지정하는 것에는 크게 두 가지 형식이 있습니다. 바로 '허용' 과 '거부' 인데요. 같은 종류의 권한에 대해 '거부' 와 '허용' 이 동시에 적용되어 있는 경우 거부를 우선시하여 적용됩니다.
/grant - 허용할 권한
/deny - 거부할 권한
아래와 같이 현재 사용자에게 읽기와 쓰기 권한을 허용한 후, 쓰기 권한을 거부하면 해당 파일을 읽을 수는 있지만 쓰는(수정)하는 것은 불가능해지는 것이죠.
icacls D:\Test.txt /grant %username%:(R,W)
icacls D:\Test.txt /deny %username%:W
이 외에도 상속도 다뤄야 하고, 저도 확실하게 남에게 이야기할 수준이 못되는지라 큰 도움을 드리긴 힘들 것 같습니다. 아무래도 이쪽은 서버를 잘 다루시는 분께 여쭤보는 게 좋을 것 같습니다.
p.s 그런데 제가 알기론 읽기 권한이 부여되면 파일의 복사나 이동을 막을 방법은 없을 듯 해보이네요. 권한이 아닌 다른 쪽으로 알아보셔야 할 듯 싶어요.
레지스트리 잘쓰겠습니다
레지스트리는 마치 오토핫키 프로그램을
컴퓨터에 저장해두는 꼴 같네요
폴더에 사용자권한걸어놓고 사용하다가 윈7 재설치했거든요,
근데 그때부터 폴더접근은 되는데 사진이고 파일마다 파일에 엑세스 할수있는 권한이 없다면서
먹통이 되버렸어요.
이거 어떻게 해야할지 도저히 모르겠어요 좀 도와주세요
저한테는 중요한 파일들인데..ㅠㅠㅠㅠ
정말 감사합니다.
방법이 없나요? 미치겠어요 ㅠㅠ
[HKEY_CLASSES_ROOT\*\shell\runas]
@="모든 권한 부여"
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOT\*\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:D"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:D"
[HKEY_CLASSES_ROOT\exefile\shell\runas2]
@="모든 권한 부여"
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOT\exefile\shell\runas2\command]
@="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:D"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:D"
[HKEY_CLASSES_ROOT\Directory\shell\runas]
@="모든 권한 부여"
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOT\Directory\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:D /t"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:D /t"
작성자님의 글과 반대로 administrators의 권한을 삭제 해야하는 상황이라
글을 보면서 한번 해봤습니다만 잘안되네요 도와주실 수 있나요?
해결하는지 아시나요?ㅠ 제발 부탁드려요
댓글을 달아 주세요