Подсказка администратора Mac OS X Python GUI - PullRequest
4 голосов
/ 03 июля 2010

У меня есть приложение OS X Python, которое использует wxPython для управления графическим интерфейсом. Я пытаюсь запросить у пользователя административные права (подобно использованию API службы авторизации в Objective-C) перед запуском сетевой службы.

Самая близкая библиотека, которую я нашел, это Библиотека авторизации Боба Ипполито , но она довольно устарела и имеет проблемы совместимости со Snow Leopard (OS X 10.6.4 / Python 2.6.4).

Мой обходной путь - создать средство запуска Objective-C, которое запускает приложение python с правами администратора, но выглядит довольно глупо.

Спасибо за помощь!

Ответы [ 3 ]

5 голосов
/ 24 июня 2011

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

os.system("""osascript -e 'do shell script "<commands go here>" " with administrator privileges'""")

Она выполнит команду оболочки внутри интерпретатора applecript и запросит у пользователя ихучетные данные учетной записи;эффективный запуск команды с помощью sudo.

Обратите внимание, что вам будет весело экранировать кавычки внутри вашей команды, например,

os.system("""osascript -e 'do shell script "mkdir -m 0775 -p \\"%s\\" " with administrator privileges'"""%d)

Надеюсь, это поможет!

2 голосов
/ 13 марта 2012

Вы можете запустить весь сценарий с правами администратора, превратив его в собственное приложение Mac OS X, используя Platypus .

1 голос
/ 03 июля 2010

Возможно, вы захотите проверить ответ на другой вопрос, размещенный здесь: Какой тип API мне следует использовать для повышения привилегий пользователя до супер-пользователя в Mac OS X?

...