4

我启用了沙盒并将/sbin/ping与 NSTask 一起使用:

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

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

我还想将/usr/sbin/traceroute与 NSTask 一起使用:

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

但任务以以下消息终止:NSTask:为路径“/usr/sbin/traceroute”创建任务失败:22,“无效参数”。终止临时进程。* 同时沙盒日志:deny denied-exec-sugid

为什么它适用于ping,但不适用于traceroute?以及如何使其与traceroute一起使用?

谢谢!

4

1 回答 1

4

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

Q2:向 Apple 提交错误报告,详细说明您需要 traceroute 功能的原因,并要求提供沙盒支持的方法。鉴于您实际上正在使用沙箱,您可能是注册的 Apple 开发人员,因此请在开发论坛上提出它(列出您的错误编号)。

于 2012-02-14T00:59:45.150 回答