Objective-C MacOS的管理员权限继承

原创 2015年07月10日 19:09:22

在MacOS下可以使用AuthorizationExecuteWithPrivileges函数以管理员身份运行某个程序,凡是以管理员权限运行会弹出一个输入密码的框。 而被执行的这个程序如果再以管理员权理去执行另外一个程序,又会弹出一个框。这说明权限是没有继承的。

写过Windows程序的人应该知道, Win7上如果以管理员身份运行程序是会弹出UAC提示的, 但是被运行的这个程序, 如果再去运行其他程序, 那么其他程序就都是管理员身份了,而且不会弹UAC提示, 这说明权限是继承的。

下面我们实现Mac下的权限继承

#import <Cocoa/Cocoa.h>

#import "STPrivilegedTask.h"

int main(int argc, const char * argv[]) {
    
    STPrivilegedTask *myTask = [[STPrivilegedTask alloc] init];
    NSString *fullPath = @"/Applications/test.app/Contents/MacOS/test";
    NSArray *args = [NSArray arrayWithObjects: @"install", nil]; //参数
    
    [myTask setLaunchPath:fullPath];
    [myTask setArguments:args];
    [myTask launch];
    
    return NSApplicationMain(argc, argv);
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

mac os x 文件权限管理

 文件或目录的访问权限分为只读,只写和可执行三种。以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作。可执行权限表示允许将该文件 作为一个程序执行。文件被创建时,文件所有者自动拥有对该...
  • nitghost
  • nitghost
  • 2009年05月29日 14:12
  • 42755

MacOS下Objective-C项目基于SonarQube的代码审计操作纪要

SonarQube 代码审计
  • annkie
  • annkie
  • 2016年05月27日 11:43
  • 2388

Objective-C简单继承代码

  • 2016年03月01日 15:29
  • 5KB
  • 下载

【iOS开发之Objective-C】继承

继承 1.什么是继承 编写面向对象的程序时,你所创建的类和对象之间存在一定的关系。它们协同工作才能使程序实现功能。 处理类和对象的关系时,尤其要重视OOP的两个方面。第一个方面是继承(inherita...

Objective-C私有变量继承问题

写这篇博客之前,我得推荐一本书——Objective-C程序设计(第6版)英文版,也就是 Objective-C Programming (Sixth Edition)。     感觉国内关于Obj...

【深入浅出Objective-C】4.4类的继承和重写

继承自4.3的Weapon类 #import "Weapon.h" #import //继承 @interface Sword : Weapon{ //子类新增的属性 N...

Objective-C - 封装、继承、多态综合实例

设计2个类,类之间的关系自拟(比如继承、组合)/* 1.设计2个类,类之间的关系自拟(比如继承、组合) 1> 车 (1)属性 * 轮子数 * 速度 (2)方法 * 属性相应的set和get...

IOS开发之路-Objective-C 继承,多态

原来学过java,所以OC中的继承和多态就不难理解了。但是OC中却让我对继承和多态有了新的理解. 在OC继承和多态中出现了两个关键词.【开闭原则】和【里氏替换】 在我目前比较肤浅的理解, 开闭原则...
  • joyoing
  • joyoing
  • 2013年07月31日 09:42
  • 782

Objective-C 编程语言(4)协议---非继承关系上的相似性,正式的协议,非正式的协议

转载请标明出处:http://blog.csdn.net/zhangxingping 非继承关系上的相似性     如果多个类(两个或者以上)实现了相同的一套方法,那么这些类通常被划分到声明了...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Objective-C MacOS的管理员权限继承
举报原因:
原因补充:

(最多只允许输入30个字)