2014-01-31 3 views
1

특정 파일 시스템 경로 (폴더 또는 파일이 중요하지 않음)가 주어지면 해당 경로에 대한 각 보안 주체의 액세스를 반영하는 문자열을 생성해야합니다.문자열로 Windows 파일 사용 권한

난 후 그 결과는 Windows에서 고급 보안 설정 대화 상자의 사용 권한 탭에서 보는 것과 매우 유사하다 : 나는 궁극적으로 User1: [access], User2: [access], etc. 형식으로 표시됩니다

Windows Advanced Security Dialog

.

이 결과를 얻는 방법은 무엇입니까? 특히 실행해야하는 Windows 보안 API 함수의 순서는 무엇입니까?

답변

2

FILE_FLAG_BACKUP_SEMANTICS 및 FILE_GENERIC_READ 속성 (또는 함께 사용)을 사용하여 CreateFile을 통해 파일을 엽니 다.

그런 다음 얻은 파일 핸들을 사용하여 GetKernelObjectSecurity을 호출하십시오. 그런 다음이 호출에 의해 반환 된 SECURITY_DESCRIPTOR을 구문 분석합니다.

아마도 ACL 및 DACL에 대해 알아야 할 것입니다.

+0

답변 해 주셔서 감사합니다. 원래의 질문과 일치하는 방식으로 SECURITY_DESCRIPTOR을 파싱하는 예가 있습니까? – Mark

+0

@Mark : ['ConvertSecurityDescriptorToStringSecurityDescriptor'] (http://msdn.microsoft.com/en-us/library/windows/desktop/aa376397%28v=vs.85%29.aspx)에서 빠른 시작을 얻을 수 있습니다. –

+0

@Roman :이 함수는 실제로 보안 설명자를 문자열로 변환하지만 결과는 주로 사람이 읽을 수 있도록 설계되지 않았습니다. 필자는 원래의 질문에 설명 된 것과 같이 더 친숙한 형식으로 변환하는 방법을 찾았지만 아무 소용이 없습니다. – Mark