【发布时间】:2012-09-20 13:47:55
【问题描述】:
我有一个正在开发的 OSX 应用程序。它不是沙盒(它是一个内部应用程序,可以防止沙盒)。
有时我的应用程序会启动auxiliary application,实际上只是一个命令行应用程序。我希望能够剥夺这个应用程序除了将文件写入 TMPDIR 之外的任何功能。我正在尝试关注principle of least privilege。
我当前使用的代码是:
NSTask* task = [NSTask new];
NSBundle* thisBundle = [NSBundle mainBundle];
[task setArguments:@[a, b, c]];
[task setLaunchPath:[thisBundle pathForAuxiliaryExecutable:@"MyProgram"]];
[task launch];
NSTask 可以做到这一点吗?如果不是,我可以使用什么机制以非常低的权限启动 MyProgram?
【问题讨论】:
-
您的 OS X 版本是什么?对于此类工作,在 10.8 中,事情变得容易了。
-
@RobNapier 我的目标是 10.7;但我会对 10.8 的答案非常感兴趣。仅作为内部应用程序;瞄准大众并不是真正的问题。
标签: objective-c cocoa least-privilege