Как предоставить права администратора в скрипте оболочки Mac OS X? - PullRequest
1 голос
/ 06 августа 2011
#!/bin/sh

# The following files are bundled:
#
# 'Wiener.dog'
#
#

open -a /Applications/Hot\ Dog.app/Contents/MacOS/Hot Dog ~/Documents/Broiler\ Cooked/Wiener.dog

Сценарий оболочки выполняется нормально, хотя он всегда запрашивает авторизацию администратора - как мне пропустить эту часть, чтобы мне не приходилось касаться касания винера?спасибо! * * 1002

1 Ответ

4 голосов
/ 06 августа 2011

Вы можете попробовать установить бит setuid и изменить владельца файла на root:

sudo chown root /Applications/Hot\ Dog.app/Contents/MacOS/Hot\ Dog
sudu chmod 4755 /Applications/Hot\ Dog.app/Contents/MacOS/Hot\ Dog

Первая строка устанавливает приложение Hot Dog как корневое. Вторая строка устанавливает бит setuid , который запускает приложение как пользователь, которому оно принадлежит, даже если оно запущено другим пользователем.

Насколько я знаю, Mac OS не позволяет setuid для сценариев оболочки.

Однако следует помнить, что это меняет разрешения для приложения Hot Dog , и это изменение является постоянным. Тот, кто имеет доступ к этому приложению и пытается его запустить, запустит его с правами администратора. Если вы являетесь единственным пользователем этого компьютера, у вас должно быть все в порядке, но если это многопользовательский компьютер, а приложение Hot Dog потенциально опасно, вы должны знать, что его может использовать каждый.

Вы можете ограничить влияние, определив пользовательскую группу, скажем hotdog , поместите себя в эту группу и используйте вместо этого:

sudo chown root:hotdog /Applications/Hot\ Dog.app/Contents/MacOS/Hot\ Dog
sudu chmod 4750 /Applications/Hot\ Dog.app/Contents/MacOS/Hot\ Dog

Первая строка устанавливает владельца файла для пользователя root и группы hotdog . Второй позволяет выполнение владельцем (root) и тем, кто входит в группу hotdog , и никем другим. Он также устанавливает бит setuid , что означает, что приложение будет работать с правами администратора, даже если его запускает не администратор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...