2012-01-19 3 views
7

나는 파고를 해봤지만 주위에 떠돌아 다니는 주된 아이디어는 setuid/getuid를 사용하고 권한 부여 서비스를 사용하고 있습니다. (어떤 이유로 컴파일 중에 나타나지만 나타납니다. 지금은 더 이상 사용되지 않음).프로그래밍 방식으로 권한 승계 OSX

내 응용 프로그램은 OS X 인증 대화 상자를 사용하여 특정 지점에서 루트 액세스 (원시 디스크 드라이브 액세스)를 요청할 수 있어야합니다 (OS X을 처음 사용하므로 무엇을 호출해야할지 모릅니다.) 그).

답변

2

인증 서비스는 AFAIK에서 지원됩니다.

Here's a link to a tutorial (with sample projects!) 관리자 권한을 얻을 수있는 작은 도구를 실행하는 데 사용할 수 있으며 호출 프로세스에서 setpriority API를 호출 할 수 있습니다 (설명서는 연결된 문서).

+0

감사! 어떤 이유로 나는 AuthorizationExecuteWithPrivileges가 #include 로 선언 된 곳을 찾을 수 없다. 하나의 함수를 제외한 다른 모든 것에 대한 심볼을 가지고있다. – Lander

+0

http://developer.apple.com/library/ mac/# documentation/Security/Reference/authorization_ref/Reference/reference.html에 따르면 10.7부터 AuthorizationExecuteWithPrivileges가 사용되지 않습니다. http://stackoverflow.com/questions/6841937/authorizationexecutewithprivileges-is-deprecated에는 몇 가지 관련 정보가 있습니다. – Vishal

+0

Whooops ... 'AuthorizationExecuteWithPrivileges'는 10.7부터는 "사용되지 않음"이되었습니다. 나는 애플의 [Authorization Services Tasks] (http://developer.apple.com/library/mac/#documentation/Security/Conceptual/authorization_concepts/03authtasks/authtasks.html#//apple_ref/doc/uid/TP30000995)를보고있다. -CH206-TP9) 문서를보고 ['renice'] (http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man8/renice.8.html) 호출 방법을 확인하십시오. 방법. –

관련 문제