Sto creando una semplice applicazione che consente di immettere rapidamente un comando shell da eseguire. Funziona perfettamente, tuttavia c'è il problema dei comandi sudo. Attualmente, rileva un comando sudo, quindi cerco di richiamare una finestra di autorizzazione per la password dell'utente, esattamente come si vedrebbe nel programma di installazione.Elevazione ai diritti di amministrazione nell'applicazione Mac
Ecco il codice una volta che rileva è un comando sudo:
SFAuthorization *authorization = [[SFAuthorization alloc] initWithFlags:kAuthorizationFlagPreAuthorize rights:NULL environment:kAuthorizationEmptyEnvironment];
if ([authorization obtainWithRight:"com.mycompany.myapplication" flags:kAuthorizationFlagPreAuthorize error:nil]){
//authorized, now run the command using NSTask.
}else{
//fail
}
Ora, per quanto ne so, questo è totalmente e completamente sbagliato. Questo è proprio quello che ho messo insieme dalla documentazione. Qualche idea?
Ma questo non eseguirà NSTask. Qualche idea su come eseguire NSTask usando i privilegi? –