Песочница с NSTask - PullRequest
       24

Песочница с NSTask

4 голосов
/ 14 февраля 2012

У меня включена песочница и я использую / 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, «Недопустимый аргумент».Завершение временного процесса. * В то же время журналы песочницы: отрицать запрещенный-exec-sugid

Почему он работает с ping , но не с traceroute ?И как мне заставить его работать с traceroute ?

Thx!

1 Ответ

4 голосов
/ 14 февраля 2012

Q1: ping vs. traceroute - первая - непривилегированная программа, вторая - привилегированная и запускается с правами root.Ваша ошибка указывает на то, что запуск в качестве пользователя root недопустим в «песочнице», что неудивительно.

Q2: отправьте в Apple отчет об ошибке, в котором подробно объясняется, почему вам нужна функциональность traceroute, и запросите способ поддержки в «песочнице».Учитывая, что вы на самом деле используете песочницу, вы, вероятно, являетесь зарегистрированным разработчиком Apple, поэтому поднимите ее и на форумах разработчиков (укажите номер ошибки).

...