Как запускать приложения с графическим интерфейсом от имени пользователя root в Mac OS X

Anonim

Те, кто знаком с командной строкой, знают, что запуск вещей с правами суперпользователя обычно сводится к использованию команды sudo. Это по-прежнему верно для запуска приложений с графическим интерфейсом в OS X с привилегиями root, но это не просто вопрос добавления sudo к полезной в других отношениях команде open, потому что «open» запускает приложения от имени исходного пользователя, с sudo или без него. Решение вместо этого состоит в том, чтобы использовать sudo, указывающий непосредственно на исполняемый файл, содержащийся в данном файле пакета приложений.

Запуск приложений OS X GUI от имени пользователя root

Синтаксис команды следующий:

sudo /Path/To/Application/ApplicationName.app/Path/To/Executable

В большинстве случаев это будут приложения, хранящиеся в каталоге /Applications/, а исполняемый файл почти всегда хранится в Package/Contents/MacOS/ под любым именем приложения:

sudo /Applications/ApplicationName.app/Contents/MacOS/ApplicationName

Например, эта команда запускает знакомое приложение TextEdit от имени пользователя root:

sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit

Чтобы запустить TextEdit в качестве фонового приложения, то есть оно не закроется, если вы закроете окно терминала, примените флаг -b к sudo: sudo -b /Applications/TextEdit .app/Contents/MacOS/TextEdit

Вы можете подтвердить, что приложение работает от имени пользователя root, используя команду ps с grep, снова используя TextEdit в качестве примера:

ps au|grep TextEdit

В качестве альтернативы вы можете посмотреть приложение для управления процессами OS X Activity Monitor и найти приложение, работающее там как пользователь root, как показано на снимке экрана вверху и в коротком видео ниже:

Если вы собираетесь часто запускать определенное приложение от имени пользователя root, вы можете рассмотреть возможность размещения псевдонима в .bash_profile для сокращения командной строки.

Несмотря на запуск от имени пользователя root, не все системные файлы могут быть изменены, а некоторые могут быть помечены как «Заблокированные» при открытии в некоторых приложениях, таких как TextEdit. Эту проблему часто можно решить, включив пользователя root, если вы еще этого не сделали, но не все приложения будут иметь это ограничение.Тем не менее, для определенных задач, таких как редактирование файла hosts, вам все же лучше придерживаться командной строки и текстового редактора или использовать такие приложения, как BBEdit или TextWrangler.

Как запускать приложения с графическим интерфейсом от имени пользователя root в Mac OS X