Запуск программ от имени другого пользователя в Mac OS X

В Mac OS X с более чем одним пользователем, есть ли API или фрагмент кода, который запускает процесс как другой пользователь в Objective C?

1 ответ

Вам нужно использовать AuthorizationExecuteWithPrivileges, взгляните, например, на http://www.michaelvobrien.com/blog/2009/07/authorizationexecutewithprivileges-a-simple-example/

// Create authorization reference
AuthorizationRef authorizationRef;
OSStatus status;
status = AuthorizationCreate(NULL, kAuthorizationEmptyEnvironment,
                             kAuthorizationFlagDefaults, &authorizationRef);

// Run the tool using the authorization reference
char *tool = "/sbin/dmesg";
char *args[] = {NULL};
FILE *pipe = NULL;
status = AuthorizationExecuteWithPrivileges(authorizationRef, tool,
                                            kAuthorizationFlagDefaults, args, &pipe);
Другие вопросы по тегам