2012-01-19 15 views
7

Ho fatto alcuni scavi e le idee principali che ho visto fluttuare stanno usando setuid/getuid e usando i Servizi di autorizzazione (che, per qualche motivo, mi dà un errore di simbolo durante la compilazione ma appare essere deprecato ora).Privilegi Escalate programmaticamente OS X

La mia applicazione deve essere in grado di richiedere l'accesso di root (per accedere a un'unità disco raw) in un determinato punto, preferibilmente con la finestra di autenticazione di OS X (Sono nuovo a OS X quindi non ho idea di cosa chiamare quella).

risposta

2

Servizi di autorizzazione è supportato abbastanza bene, AFAIK.

Here's a link to a tutorial (with sample projects!) che è possibile utilizzare per avviare un piccolo strumento in cui è possibile ottenere privilegi di amministrazione e quindi è possibile chiamare l'API setpriority sul processo di chiamata (documentazione collegata per voi).

+0

Grazie! Per qualche motivo non riesco a trovare dove AuthorizationExecuteWithPrivileges è dichiarato come quando I include Ho simboli per praticamente tutto il resto, tranne quella funzione – Lander

+0

http://developer.apple.com/library/ mac/# documentation/Security/Reference/authorization_ref/Reference/reference.html dice che AuthorizationExecuteWithPrivileges è stato deprecato dal 10.7. http://stackoverflow.com/questions/6841937/authorizationexecutewithprivileges-is-deprecated ha alcune informazioni correlate. – Vishal

+0

Whooops ... 'AuthorizationExecuteWithPrivileges' è diventato" deprecato "a partire dal 10.7. Sto esaminando i [Task dei servizi di autorizzazione] di Apple (http://developer.apple.com/library/mac/#documentation/Security/Conceptual/authorization_concepts/03authtasks/authtasks.html#//apple_ref/doc/uid/TP30000995 -CH206-TP9) documentazione per vedere come è possibile ['renice'] (http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man8/renice.8.html) la chiamata processi. –