우리 제품을 업데이트하는 Windows 서비스가 있습니다. 제품 파일을 임시 디렉토리 (일반적으로 "C : \ Windows \ Temp")에 복사하고 바이너리를 패치 한 다음 MoveFileEx를 사용하여 파일을 다시 부팅 할 때 설치 디렉토리 (일반적으로 "C : \ Program Files \ Product ". 설치 디렉토리의 파일은 상위 폴더에서 보안 속성을 상속합니다. 복사, 패치 및 재부팅 후에 설치 디렉토리의 파일에 일부 ACL이 누락되었습니다. 특히 파일에는 사용자 그룹에 대한 ACL이 더 이상 없으므로 사용자는 재부팅 후에 더 이상 프로그램을 실행할 수 없습니다.파일 보안 속성이 파일 복사에 엉망이되고있다
아무도 설명 할 수 있습니까? 설치 디렉토리에서 임시 디렉토리로 복사하는 것처럼 파일은 임시 디렉토리의 ACL을 상속합니다. 그러나 MoveFileEx/Reboot에서 파일은 설치 및 임시 디렉토리에 공통으로있는 ACL 만 상속합니다.
나는 이것이 아마도 문제를 못살게 굴 것이라고 생각한다. 한 가지 수정 사항이 있지만 ususal 권한으로 실행되는 서비스의 % TEMP % 디렉터리는 특정 사용자의 임시 디렉터리가 아니라 C : \ Windows \ Temp입니다. – Charles