최근에 회사에서 몇 년 동안 사용했던 대용량 파일 공유에 대한 조사가 포함 된 프로젝트에서 스토리지 담당자 중 한 명과 협력하고 있습니다. 다음과 같은 이유로 도메인 액세스 계정으로 액세스 할 수없는 디렉토리 나 파일이 자주 발생합니다.
- 손상된 ACL
- 관리자 그룹 (또는 SYSTEM 사용자)에 대한 액세스가 취소 또는 거부되었습니다.
- 파일 이름 + 경로가 너무 깁니다 ( MAX_PATH 이외 )
Microsoft (예 : TAKEOWN.EXE 및 ICALCS.EXE) 또는 타사 (예 : SETACL.EXE ) 에서 이러한 상황에 도움이되는 몇 가지 도구가 있습니다 . 때때로 PSEXEC.EXE를 사용 하여 SYSTEM 계정에서 명령 중 하나를 실행하는 것과 같은 다른 트릭이 필요합니다 . 수행해야 할 단계와 순서가 무엇인지 파악하는 것조차도 …
예를 들어 다음과 같은 흐름으로 문제를 해결할 수 있기를 원합니다.
- 경로가 너무 깁니까? 그렇다면
\\?\
접두사 로 경로를 작성한 다음 다시 테스트하십시오. - ACL이 손상 되었습니까? 그렇다면 ACE를 올바르게 다시 주문하고 알 수없는 부분을 제거한 다음 다시 테스트하십시오.
- 관리자 그룹이 액세스를 거부 했습니까? 그렇다면 소유권을 갖고 관리자 그룹과 SYSTEM 계정에 대한 권한을 다시 추가 한 다음 다시 테스트하십시오.
- 여전히 실패하고 있습니까? 그렇다면 모든 ACE를 삭제하고 상속 된 권한 만 적용한 다음 다시 확인하십시오. (이는 일종의 최후의 수단입니다. 더 제한적인 권한이 자주 열리기 때문입니다.)
- 디렉토리입니까? 그렇다면 내부의 파일에 대해 프로세스가 재귀 적으로 계속 진행되어야합니다 …
위의 단계를 수동으로 수행하는 것은 고통스럽고 수백 개의 디렉토리를 고치면 무리가 있습니다. 이를 지원하기 위해 스크립트 작성을 시도했지만 결정에 대해 스크립트를 “스마트”하게 만드는 것이 어렵 기 때문에 상속 된 권한 만 복원하는 것과 같이 전체적인 복구 방법을 수행하는 것이 더 쉬운 경우가 많습니다.
누구든지이 프로세스에 도움이되는 다른 소프트웨어 및 / 또는 스크립트를 추천 할 수 있습니까? 또는 이와 같은 권한 문제를 어떻게 해결합니까?
답변
fileacl을 사용하는 것이 좋습니다. SeBackupPrivelege를 사용하여 ACL을 설정할 수 있으므로 명령을 실행하는 사용자에게 지정된 객체에서 ACL을 변경할 수있는 권한이 필요하지 않습니다. 또한 기본적으로 NTFS-5 이후의 상속 기능을 지원하고 쉽게 스크립팅되므로 일부 랩핑 스크립팅 로직을 사용하면 원하는 작업을 수행 할 수 있습니다.