How can I pre-authorize authopen?

Posted by Georg on Stack Overflow See other posts from Stack Overflow or by Georg
Published on 2009-09-22T14:02:56Z Indexed on 2010/06/13 20:02 UTC
Read the original article Hit count: 452

Filed under:
|

I'm using authopen inside one of my programs to modify files owned by root. As can be seen in the screenshot below authopen asks for a admin password. What I'd like to achieve is that the dialog shows my app's name and then passes the authorization to authopen.

authopen requires that you type your password.

Code

Launching authopen which returns an authorized file descriptor.

int pipe[2];

socketpair(AF_UNIX, SOCK_STREAM, 0, pipe);

if (fork() == 0) {  	// child
    // close parent's pipe
    close(pipe[0]);
    dup2(pipe[1], STDOUT_FILENO);

    const char *authopenPath = "/usr/libexec/authopen";
    execl(authopenPath,
          authopenPath,
          "-stdoutpipe",
          [self.device.devicePath fileSystemRepresentation],
          NULL);

    NSLog(@"Fatal error, quitting.");
    exit(-1);
}
// parent
// close childs's pipe
close(pipe[1]);

// get file descriptor through sockets

I'd really like not to use AuthorizationExecuteWithPrivileges because then I'd have to get more rights than I want to.

© Stack Overflow or respective owner

Related posts about macosx

Related posts about darwin