obtaining authorizing for task_for_pid
obtaining authorizing for task_for_pid
- Subject: obtaining authorizing for task_for_pid
- From: Matt Burke <email@hidden>
- Date: Sat, 19 Jul 2008 22:59:29 -0700 (PDT)
I am trying to use the Security framework to authorize my program for
task_for_pid() without adding the current user to the procmod group
from the command line. I am running OSXv10.4.11 on an Intel MacBook.
[code]
#import <Security/Authorization.h>
#import <mach/mach.h>
@implementation auth_obj
-(IBAction)auth_tfp:(id)sender {
AuthorizationRef myAuthorizationRef;
OSStatus myStatus;
myStatus = AuthorizationCreate (NULL, kAuthorizationEmptyEnvironment,
kAuthorizationFlagDefaults, &myAuthorizationRef);
NSLog( @"AuthorizationCreate:%d\n", myStatus);
AuthorizationItem myItems[1];
//system.privilege.taskport found on random website
myItems[0].name = "system.privilege.taskport";
myItems[0].valueLength = 0;
myItems[0].value = NULL;
myItems[0].flags = 0;
AuthorizationRights myRights;
myRights.count = sizeof (myItems) / sizeof (myItems[0]);
myRights.items = myItems;
AuthorizationFlags myFlags;
myFlags = kAuthorizationFlagDefaults |
kAuthorizationFlagInteractionAllowed |
kAuthorizationFlagExtendRights;
myStatus = AuthorizationCopyRights (myAuthorizationRef, &myRights,
kAuthorizationEmptyEnvironment, myFlags, NULL);
NSLog( @"AuthorizationCopyRights:%d\n", myStatus);
mach_port_t remoteTask = 0;
int err = task_for_pid( mach_task_self(), 6840, &remoteTask );
if (err == 5) {
printf("Could not access task for pid %d. You probably need to add user to procmod group\n", 6840);
} else {
printf("task_pid_success\n");
}
//myStatus = AuthorizationFreeItemSet (myItems);
myStatus = AuthorizationFree (myAuthorizationRef, kAuthorizationFlagDestroyRights);
NSLog( @"AuthorizationCopyRights:%d\n", myStatus);
NSLog ( @" done auth" );
}
@end
[/code]
i am expecting the output to be:
2008-07-17 23:29:06.949 auth_tfp[7439] AuthorizationCreate:0
2008-07-17 23:29:12.580 auth_tfp[7439] AuthorizationCopyRights:0
task_pid_success
2008-07-17 23:29:12.581 auth_tfp[7439] AuthorizationCopyRights:0
2008-07-17 23:29:12.581 auth_tfp[7439] done auth
but the output is:
2008-07-17 23:29:06.949 auth_tfp[7439] AuthorizationCreate:0
2008-07-17 23:29:12.580 auth_tfp[7439] AuthorizationCopyRights:0
Could not access task for pid 6840. You probably need to add user to procmod group
2008-07-17 23:29:12.581 auth_tfp[7439] AuthorizationCopyRights:0
2008-07-17 23:29:12.581 auth_tfp[7439] done auth
i do not want to add the user to the procmod group. just gain authorization to call task_for_pid once.
is
the security framework the correct method for gaining this access? if
so, what am i doing wrong? if not, what method should i use?
_______________________________________________
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