![]() |
1
4
最初,苹果公司提供了一个功能: 授权ExecuteWithPrivileges '允许应用程序以root权限启动另一个应用程序。出于安全原因,这一点已被弃用。 这里的对话有点误导。苹果提供 authorization services 它在各种不同的情况下启动对话框,但通常是从调用函数AuthorizationCopyRights、在授权数据库(位于/etc/authorization的文件)中设置规则并使用AuthorizationCreate创建授权引用后的应用程序启动。 OSX上的安全分为安全守护程序、安全代理和应用程序。应用程序可以限制使用此系统的功能,或者请求授权用户输入凭据,以便启动特权应用程序,这正是您需要做的。 需要注意的是,对话框并不是由应用程序提供的,而是由安全代理提供的,安全代理完全负责安全GUI。守护进程实际上处理授权。 苹果的提升方法是让所有应用程序以标准用户权限运行,如果需要特权任务,则必须将其分解为一个单独的应用程序,该应用程序注册为以launchd运行,并授予提升的权限。苹果提供的例子是 SMJobBless . 虽然示例的调用代码是用Objective-C编写的,但重要的函数只是SMJobblesApp控制器中的C函数。m文件,最值得注意的是 授权创建 在Objective-C功能中创建授权参考和代码 blessHelperWithLabel:错误: 在文件的底部。 以…开始 this help document 在SMJobBless上,详细介绍了流程。 最后,如果您使用的是Qt,则需要为所需的函数调用包含Apple的安全框架。要做到这一点,只需将以下内容添加到。专业文件:-
|
![]() |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
![]() |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
![]() |
rainer · 后台插入程序的初始化 1 年前 |
![]() |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |