沙盒与NSTask

时间:2012-02-13 20:53:20

标签: cocoa sandbox nstask appstore-sandbox

我启用了沙盒并使用 / sbin / ping 和NSTask:

[task setLaunchPath:@"/sbin/ping"];
[task setArguments:[NSArray arrayWithObjects:@"-c10", iPAddress, nil]];

一切都很好,我得到了预期的输出。

我还想在NSTask中使用 / usr / sbin / traceroute

[task setLaunchPath:@"/usr/sbin/traceroute"];
[task setArguments:[NSArray arrayWithObject:iPAddress]];

但是任务终止于消息: NSTask:路径'/ usr / sbin / traceroute'的任务创建失败:22,“无效的参数” 。终止临时流程。 * 同时沙盒日志:拒绝禁止-exec-sugid

为什么它适用于 ping ,而不适用于 traceroute ?如何使用 traceroute

THX!

1 个答案:

答案 0 :(得分:4)

Q1:ping与traceroute - 前者是一个非特权程序,后者是特权并以root身份运行。您的错误表明沙箱不允许以root身份运行,这并不奇怪。

第二季度:向Apple提交一份错误报告,详细说明为什么需要traceroute功能并要求支持沙箱的方式。鉴于您实际上正在使用沙箱,您可能是注册的Apple开发人员,因此也请在开发论坛上提出它(列出您的错误号)。