문제

내가 작업하는 응용 프로그램에는 Linux, OSX 및 Windows [Vista]에서 특정 보호 파일을 편집 할 수 있어야합니다. 일반적으로 응용 프로그램이 권한이 높아진 경우 애플리케이션이 필요한 경우 암호 요청 대화 상자는 사용자에게 응용 프로그램이 해당 작업을 관리자로 수행하도록 허용하도록 요청하는 것으로 보입니다.

일반적으로 Windows Vista는 Manifest 파일을 사용하고 OSX는 권한 부여 라이브러리를 가지고 있습니다.https://developer.apple.com/mac/library/documentation/security/reference/authorization_ref/reference/reference.html), Linux에는 다양한 Sudo Frontends가 있습니다.

이것을 처리하는 일반적으로 허용되는 크로스 플랫폼 방법이 있습니까? 응용 프로그램이 루트 사용자로 실행되기를 원하지 않지만 읽기/쓰기 작업을 위해 보호 된 파일을 열 수 있고 일반 사용자 모드로 다시 재개 할 수 있기를 원합니다.

도움이 되었습니까?

해결책

Windows Vista의 경우 기본적으로 관리 조치를 수행하려면 전용 프로세스가 필요합니다. 언급 한 바와 같이, 관리자 가능 프로세스는 요청 된 실행 수준을 지정하기 위해 매니페스트가 필요합니다 (이 참조 MSDN 기사 자세한 내용은).

실행되지 않은 시작을 시작하고 "높이"자체를 지원하는 Windows 애플리케이션을 자세히 살펴보면 관리 권한이 필요한 경우 (예 : UAC가 활성화되면 작업 관리자로 이동하면 클릭하십시오.” 모든 사용자로부터 프로세스를 표시하고 "관리 권한으로 다시 열리는 방법에 유의하십시오).

따라서 Windows의 경우 필요한 아키텍처에는 대부분의 작업을 수행하는 표준 프로세스와 관리자 프로세스가 관리 작업을 수행하기 위해 호출하는 두 가지 프로세스가 필요합니다. 두 프로세스는 몇 가지 안전한 수단 (아마도 보안 명명 된 파이프) 표준 프로세스를 대신하여 관리자 작업을 수행 할 수 있습니다.

이 접근법은 다른 플랫폼에서 일반화 될 수 있으며 아마도 플랫폼 별 세부 정보가 유출되지 않도록 일종의 클래스/인터페이스에서 추상화 될 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top