Можно ли запустить приложение с графическим интерфейсом Mac OS X от имени пользователя root, если вы вошли в систему как другой пользователь? [Да, я понимаю, что это обычно плохая идея.]
Когда я пытаюсь
sudo open /Path/To/My.app
насколько я могу судить, он работает как зарегистрированный пользователь.
[Я уверен, что вам интересно, почему я хочу это сделать. Вздох. Я запускаю NetRestore в образе NetBoot, который не был создан NetRestore Helper, так как мне нужно запустить какое-то другое программное обеспечение с графическим интерфейсом после восстановления. Он входит в стандартную учетную запись администратора. Обычно, когда вы запускаете NetRestore, он просит вас пройти аутентификацию перед восстановлением. Похоже, что он определяет, что это NetBooted, и предполагает, что он работает под учетной записью root, и отказывается запрашивать аутентификацию, и, таким образом, имеет недостаточно прав для выполнения восстановления.]
[Скорее всего, мне придется настроить мою настройку загрузки по сети, чтобы она автоматически входила в учетную запись root, но если бы я мог просто запустить одно приложение как root, это заняло бы гораздо меньше времени для настройки.]
[Да, я мог бы придумать другой метод для выполнения многоадресного восстановления, но NetRestore проверен, удобен и все еще работает в Leopard. В качестве альтернативы я могу использовать asr команда с iHook.]
Не использовать open
если вы хотите работать как другой пользователь. Открыть запускает запрошенное приложение через LaunchServices, которое загружает его, как если бы вы дважды щелкнули по нему.
Однако если вы запустите двоичный файл приложения напрямую, он будет работать. Так, например, как root (то есть из скрипта, который уже запущен как root, или через sudo
) бегать /Applications/TextEdit.app/Contents/MacOS/TextEdit
и TextEdit будет работать от имени пользователя root.
Вы можете попробовать Псевдо для этого, так как вы можете использовать его для запуска приложений с привилегиями системного администратора.
Я не совсем понимаю, о чем вы спрашиваете. Если вы хотите, чтобы что-то запускалось автоматически, я думаю, вы можете использовать функцию запуска документа программы для создания пути запуска. Я не использовал эту функцию, но, возможно, вам стоит изучить ее.