У меня есть скрипт lua, работающий на Mac, который должен вызывать sudo.
Я надеялся, что Mac OS автоматически вызовет диалоговое окно запроса пароля, но вместо этого команда терпит неудачу, возвращая 256.
Могу ли я в любом случае достичь своей цели?
Тим
Ответ 1 · рейтинг 21 · hamstergene
Быстрый и простой способ: запустите его так
/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.