2012-05-09 2 views
6

최근에 우리의 파일 서버에 대한 보안을 재 설계하여 모든 권한을 대부분 수정으로 표시했습니다. 이제 개발자는 GENERIC_ALL을 사용하여 파일을 열 때마다 (예 : CreateFile()) 액세스 거부 메시지를 받았다고합니다.GENERIC_ALL 및 폴더/파일 ACL? GENERIC_ALL이 실제로하는 일은 무엇입니까?

연구 후, GENERIC_ALLGENERIC_EXECUTE + GENERIC_WRITE + GENERIC_READ; 그러나 개발자가 세 개의 상수 값을 더하고 CreateFile()에이 값을 사용할 수 있으므로이 경우가 아닌 것 같습니다.

그럼, 묻습니다 ... GENERIC_ALL은 실제로 무엇을합니까?

감사합니다,

매트

+0

기계 기적의 일부 유령처럼 TortoiseHg가 사용자 공유에 파일을 만들 수 없다는 제한 시간 문제를 발견했을 때 나는 오늘이 문제에 대해 생각했습니다. 방금 게시물을 업데이트 한 사람은 누구든 빚졌습니다. – mbrownnyc

답변

4

GENERIC_ALL 액세스 권한 에게 같은 WRITE_DAC이 (권한 변경)로 사물과 WRITE_OWNER (소유자를 변경하기 위해)을 포함한 모든 가능한 액세스 권리를 포함한다. File Security and Access Rights 페이지는 GENERIC_* 액세스 권한이 파일에 대한 특정 액세스 권한에 매핑되는 방법을 보여줍니다. File Access Rights Constants 페이지에는 파일에 대한 모든 가능한 액세스 권한이 표시됩니다 (GENERIC_ALL을 사용하는 경우 모두 요청할 수 있음).

개발자는 실제로 필요한 수준의 액세스 만 요청할 것을 권장해야합니다. 드물게, 예를 들어 GENERIC_EXECUTEGENERIC_WRITE에 동시에 열리는 파일이 있습니다.

3

GENERIC_ALL은 "액세스 가능한 모든 수준"를 의미한다 (파일이 이름 FILE_ALL_ACCESS있다). 모든 권한을 제거한 이후 GENERIC_ALL에 대한 열기 시도는 예를 들어 WRITE_DAC이 더 이상 부여되지 않아 액세스가 거부되어 실패합니다.

관련 문제