Получение sudo для запроса пароля через GUI

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

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

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

Тим

Ответ 1

Быстрый и простой способ: запустить его следующим образом

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

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

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

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