• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Running process as root from Cocoa
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Running process as root from Cocoa


  • Subject: Re: Running process as root from Cocoa
  • From: "Mitchell Hashimoto" <email@hidden>
  • Date: Mon, 28 Jan 2008 21:07:18 -0800

I am looking for the most correct solution, not necessarilly the
simplest. I've been reading about the authorization services and I've
come up with a solution which works but I'm curious about a few
things. The code I have is listed below. It "works" but is it
"correct" ?

Thank you everyone! This is a great help.

	NSString *fullPath = @"/Applications/Program.app/Contents/MacOS/Program";
	AuthorizationItem myItems[1];

	myItems[0].name = kAuthorizationRightExecute;
	myItems[0].valueLength = [fullPath length];
	myItems[0].value = [fullPath cStringUsingEncoding:NSASCIIStringEncoding];
	myItems[0].flags = 0;

	AuthorizationRights myRights;
	myRights.count = 1;
	myRights.items = myItems;

	AuthorizationFlags myFlags;
	myFlags = kAuthorizationFlagDefaults |
	kAuthorizationFlagInteractionAllowed |
	kAuthorizationFlagExtendRights;

	AuthorizationRef authorizationRef;
	OSStatus myStatus;

	myStatus = AuthorizationCreate (&myRights,
kAuthorizationEmptyEnvironment, myFlags, &authorizationRef);
	if (myStatus != errAuthorizationSuccess) {
		// oh no. Show dialog.
	}

	AuthorizationExecuteWithPrivileges(authorizationRef,
myItems[0].value, kAuthorizationFlagDefaults, nil, nil);


On Jan 28, 2008 2:01 PM, Bill Bumgarner <email@hidden> wrote:
> On Jan 28, 2008, at 1:48 PM, Nir Soffer wrote:
> > The simplest solution is:
> >
> >       NSAppleScript *script = [[NSAppleScript alloc] initWithSource:
> >               @"do shell script 'path/to/exeutable' with administrator
> > privileges"];
> >
> >       NSDictionary *errorInfo;
> >       [script executeAndReturnError:&errorInfo];
>
> Easily trojaned unless you code sign...
>
> Just bring up your executable's binary in emacs and edit the path/to/
> executable to point to your favorite nefarious shell script.
>
> b.bum
>
> _______________________________________________
>
> Cocoa-dev mailing list (email@hidden)
>
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden
>
_______________________________________________

Cocoa-dev mailing list (email@hidden)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

  • Follow-Ups:
    • Re: Running process as root from Cocoa
      • From: "Kyle Sluder" <email@hidden>
References: 
 >Running process as root from Cocoa (From: "Mitchell Hashimoto" <email@hidden>)
 >Re: Running process as root from Cocoa (From: Nir Soffer <email@hidden>)
 >Re: Running process as root from Cocoa (From: Bill Bumgarner <email@hidden>)

  • Prev by Date: Re: Getting an era's beginning date
  • Next by Date: Retrieving Master from Slave
  • Previous by thread: Re: Running process as root from Cocoa
  • Next by thread: Re: Running process as root from Cocoa
  • Index(es):
    • Date
    • Thread