Получение sudo для запроса пароля через графический интерфейс

У меня есть скрипт lua, работающий на Mac, который должен вызывать sudo.

Я надеялся, что Mac OS автоматически вызовет диалоговое окно запроса пароля, но вместо этого команда терпит неудачу, возвращая 256.

Могу ли я в любом случае достичь своей цели?

Тим


person tarmes    schedule 23.04.2012    source источник


Ответы (1)


Быстрый и простой способ: запустите его так

/usr/bin/osascript -e 'do shell script "/path/to/myscript args 2>&1 etc" with administrator privileges'

Правильный и настраиваемый способ: используйте AuthorizationExecuteWithPrivileges API из Служб авторизации (в Security.framework).

Оба будут отображать стандартный графический интерфейс Mac OS X с запросом пароля администратора, а затем выполнять команду от имени пользователя root, так же, как это делает sudo, за исключением того, что переменные среды SUDO_USER не будут установлены.

Если вам нужно выполнить отдельные команды из-под учетной записи пользователя, когда вы уже получили права root, вы можете добавить к ним /usr/bin/sudo -u $USER.

person hamstergene    schedule 23.04.2012