我启用了沙盒并使用 / 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!
答案 0 :(得分:4)
Q1:ping与traceroute - 前者是一个非特权程序,后者是特权并以root身份运行。您的错误表明沙箱不允许以root身份运行,这并不奇怪。
第二季度:向Apple提交一份错误报告,详细说明为什么需要traceroute功能并要求支持沙箱的方式。鉴于您实际上正在使用沙箱,您可能是注册的Apple开发人员,因此也请在开发论坛上提出它(列出您的错误号)。