我启用了沙箱,并在NSTask中使用/sbin/ping:
[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‘failed: 22,“无效参数”。终止临时进程。*同时沙箱日志:拒绝禁止-exec-sugid
为什么它适用于ping,而不适用于traceroute?我怎样才能和特雷塞鲁特一起工作呢?
谢谢!
发布于 2012-02-14 00:59:45
Q1: ping与traceroute -前者是一个非特权程序,后者是特权程序,并作为根程序运行。您的错误表明沙盒不允许以root的形式运行,这并不令人惊讶。
Q2:向苹果提交一份bug报告,详细说明为什么需要traceroute功能,并要求提供沙箱支持的方法。考虑到你实际上正在使用沙箱,你可能是一个注册的苹果开发人员,所以也可以在dev论坛上提出来(列出您的bug号)。
https://stackoverflow.com/questions/9267846
复制相似问题