Applescript с дополнительными правами администратора - PullRequest
2 голосов
/ 22 октября 2009

Мне нужно запустить скрипт как часть первого шага приложения, чтобы удалить некоторые устаревшие компоненты из предыдущей версии. Обычно эти компоненты устанавливаются либо в $ HOME / Library, либо / Library, и сценарий может просто переместить их в корзину.

Проблема заключается в том, что в случае, если пользователь не администратор, а компоненты находятся в глобальной / библиотеке, сценарий должен пройти проверку подлинности как администратор, иначе произойдет сбой. Мой текущий скрипт использует AppleScript, но, к моему удивлению, я не могу найти способ стать администратором в середине скрипта.

Существует команда 'do shell script' foo 'с правами администратора', но она всегда проверяет подлинность, и в AppleScript проще указать нужные шаги, чем shell, хотя и не невозможно.

В данный момент я столкнулся с попыткой переместить файлы в AppleScript, отловить ошибку перемещения, а затем с помощью аутентифицирующего сценария оболочки для перемещения файлов с помощью mv. Это кажется очень громоздким, так что я могу сделать, чтобы все было аккуратно?

Ответы [ 2 ]

2 голосов
/ 23 июня 2011

Я бы написал это, чтобы использовать "do shell script". Сначала я попробую это без прав администратора - если это выдаст ошибку, я попробую это с привилегиями администратора. Таким образом, пользователь не будет запрашивать учетные данные администратора, если они не нужны.

0 голосов
/ 06 декабря 2009

Я думаю, вы могли бы использовать префикс sudo для команды, которая имеет повторную аутентификацию в течение 1 минуты после того, как вы в последний раз ее использовали. Так, например, mv / что-то / что-то будет sudo mv / что-то / что-то

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