Domanda

Qual è il modo corretto di eseguire qualcosa di simile $sudo touch folder_name o $sudo rm dall'interno di Objective-C / Cocoa? Sto cambiando e muoversi un paio di file e hanno bisogno di privilegi elevati. Ogni campione di codice sarebbe molto apprezzato. Grazie.

È stato utile?

Soluzione

Un modo per farlo è AuthorizationExecuteWithPrivileges(), ma questo è scoraggiato per il normale corso delle cose. Principalmente è per gli installatori, ho capito.

Qualcosa di simile:

AuthorizationRef auth = NULL;
OSStatus err = AuthorizationCreate(NULL, kAuthorizationEmptyEnvironment, kAuthorizationFlagInteractionAllowed, &auth);
err = AuthorizationExecuteWithPrivileges(auth, command, kAuthorizationFlagDefaults, args, NULL);

E si aggiunge adeguata verifica della err ...

Vedere la documentazione Autorizzazione .

Altri suggerimenti

Ci sono diversi modi per farlo. Che uno si sceglie dipende da ciò che si vuole fare. Il modo più semplice ed unsafest è di semplice insieme alla s-bit su uno strumento di aiuto in più che si chiama dal codice e fa quello che ha bisogno di diritti di amministratore. Date un'occhiata alla BetterAuthorizationSample per il modo più fantasia e complicato di eseguire codice con privilegi.

Il Autorizzazione Servizi Programmazione Guida ti dà tutto ciò che serve.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top