Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 替换AuthorizationExecuteWithPrivileges(辅助工具的临时根权限)_Macos_Root_Elevated Privileges - Fatal编程技术网

Macos 替换AuthorizationExecuteWithPrivileges(辅助工具的临时根权限)

Macos 替换AuthorizationExecuteWithPrivileges(辅助工具的临时根权限),macos,root,elevated-privileges,Macos,Root,Elevated Privileges,我正在编写一个带有GUI for OS X的工具,该工具仅在需要时由用户启动,例如删除锁定的文件 为了能够删除这些文件,有时需要对文件系统进行根级别的访问 目前,我用一种非常简单的方法来解决这个问题:应用程序使用AuthorizationExecuteWithPrivileges重新启动自身。这会导致向用户询问管理员帐户和密码。如果他这样做,应用程序将以root用户身份运行,并可以根据需要执行文件访问任务 这个解决方案的问题是它相当不安全,样式也不好(例如,整个UI在根用户下运行,这显然是不需要

我正在编写一个带有GUI for OS X的工具,该工具仅在需要时由用户启动,例如删除锁定的文件

为了能够删除这些文件,有时需要对文件系统进行根级别的访问

目前,我用一种非常简单的方法来解决这个问题:应用程序使用
AuthorizationExecuteWithPrivileges
重新启动自身。这会导致向用户询问管理员帐户和密码。如果他这样做,应用程序将以root用户身份运行,并可以根据需要执行文件访问任务

这个解决方案的问题是它相当不安全,样式也不好(例如,整个UI在根用户下运行,这显然是不需要的)。此外,
AuthorizationExecuteWithPrivileges
现在已被弃用

我如何改进这一点?我很清楚,我需要编写一个助手工具来执行文件操作

我不想使用安装程序,也不想以任何其他方式永久授予助手工具根权限。相反,我希望每次都要求管理员对操作进行身份验证,就像Finder要求用户在删除或修改受保护的文件时使用管理员帐户重新登录一样

这意味着,帮助程序只能暂时获得根权限。如果
AuthorizationExecuteWithPrivileges
没有被弃用,我只需通过该函数调用助手工具,就可以得到我的解决方案

这意味着
SMJobBless
对我来说可能不是正确的方式。看起来两个都没有发射。还有什么


进一步的问题:我应该使用哪种进程间通信?基本上,我需要调用帮助程序,传递一些文件引用(路径或URL),然后等待它返回结果(包括错误MSG)。我已经找到了各种IPC的方法,现在我比以往任何时候都更加困惑。许多参考启动流程,可能不适用于我,那么我应该研究什么呢?

啊,没关系。看来只有这样了。虽然我不能使用它的原因我不想在这里解释。我将使用不推荐使用的AuthorizationExecuteWithPrivileges和一个助手工具。可能是重复的,不用担心。看来只有这样了。虽然我不能使用它的原因我不想在这里解释。我将使用不推荐使用的AuthorizationExecuteWithPrivileges和一个帮助工具。可能重复的