Я хотел бы запустить следующую команду из моего проекта Cocoa. (скрывает значок прожектора)
sudo chmod 600 /System/Library/CoreServices/Search.bundle/Contents/MacOS/Search
Я нашел два способа, как вызвать команду и получить следующий вывод
1) Использование NSTask
NSTask *writeTask = [[NSTask alloc] init];
[writeTask setLaunchPath:@"/bin/chmod"];
[writeTask setArguments: @[@"755",@"/System/Library/CoreServices/Search.bundle/Contents/MacOS/Search"]];
[writeTask launch];
>>chmod: Unable to change file mode on /System/Library/CoreServices/Search.bundle/Contents/MacOS/Search: Operation not permitted
2) Трубы
NSString *command = @"sudo chmod 755/System/Library/CoreServices/Search.bundle/Contents/MacOS/Search";
fp = popen([command UTF8String], "r");
>>sudo: no tty present and no askpass program specified
Я не нашел способ запустить любой из них в режиме суперпользователя. Как я могу предложить пользователю ввести свой пароль и в конечном итоге запустить эту команду с необходимыми привилегиями?