내가 묻는 것을 이해하려면 유닉스에서 SUID의 여러 사용법을 구별하는 것이 중요하다.Unix 기반 플랫폼에서 SUID와 동일한 MS Windows 플랫폼에서 선택할 수있는 것은 무엇입니까?
프로젝트에서 소유하고 있고 SUID 비트가 설정된 사용자 PATH의 실행 파일을 사용하는 프로젝트가 있습니다. 이런 식으로 실행하면 호출하는 사용자가 아니라 파일 소유자의 컨텍스트에서 실행됩니다. 이렇게하면 사용자가 액세스하지 못하는 항목에 액세스 할 수 있으므로 정상적인 파일 시스템 보호로 이러한 사항을 사용자로부터 보호 할 수 있습니다. 이것은 합리적으로 잘 작동합니다. 계획은 프로젝트를 클라이언트 - 서버 아키텍처로 옮기는 것이지만 시간이 좀 걸릴 것입니다. 그 동안 Windows 시스템에서 이러한 유형의 동작을 어떻게 복제 할 수 있습니까?
프로젝트의 실행 파일이 솔직히 SETUID 라이브러리 호출을 호출하지 않는다는 점에 유의하십시오. 솔직히 말해서, 프로젝트에서 무엇을하는지 감안할 때 추가하는 것이 좋습니다. 프로젝트에는 시스템 루트 권한이 필요하지 않습니다. 첫 번째 보안 문제는 사용자 (파일 소유자가 아닌 다른 사용자)가 자신의 파일을 보호해야한다는 것입니다. 파일에 액세스하기 위해 "사용자 컨텍스트"로 전환 할 수 있다면 매우 유용 할 것입니다 시스템을 호출하는 사용자 인 것처럼 처리합니다. (이 방법으로 프로젝트가 만져도 좋고 그렇지 않은지를 쉽게 결정할 수 있습니다.)
프로젝트는 C와 Java의 조합으로 작성됩니다. SUID 세트가있는 C 프로그램은 Java 코드를 호출합니다 ...
나는 이러한 모든 메커니즘을 알고 싶어 해요, 특히 이슈들에 집중하고:
- C와 Java 및 적합;
- 비 Windows 프로그래머 용으로 구현하기 쉽고;
- Windows에 고유 한 최소한의 코딩 만 필요합니다.
일부 솔루션이 우수하면이 점에 대해 알고있는 모든 의견을 공유하십시오.
참고 :
- LogonUser는 : 일반 텍스트 암호가 필요합니다. 그게 어떻게 대답일까요?
- RunAs : PROMPT!에 암호를 입력해야합니다! ... LogonUser와 마찬가지로 더욱 악화됩니다. 나는 이것이 어떻게 대답인지 보지 못한다.
적절한 해결책은 서비스를 설치하는 것입니다. –