Команды с sudo через Эппл Скрипт
Долго мучился, пока не нашел решение. Писал об этом в хелп мумака, но там запрятали так, что не найдешь. Ну и фих с ним.
Иногда бывает необходимо выполнять повторяющиеся терминальные команды на своем компе от имени root-a. Для этого можно испольновать приведенный ниже эпплскрипт, сохранив его в формате Application как run only (чтоб из него нельзя было увидеть админский пароль)
set LF to ASCII character 10 (1)
set yourScr to "Ваше_Терминальное_Заклинание_без_слова_sudo"
set passwordStr to "ВашПароль" as string
set sudoScr to "sudo " & yourScr & "; sudo -k" (2)
do shell script "sudo -v" & " << ++" & LF & passwordStr & LF (3)
do shell script sudoScr (4)
- так мы определяем перевод каретки, он же Энтер
- тут мы формируем консольную команду, которая выполнится со словом sudo, а по завершении выполнения системе указывается, что в следующий раз надо давать запрос на ввод пароля после команды с sudo
- тут мы говорим системе, чтобы она ближайшие 5 минут выполняла команды sudo без ввода пароля; при этом, однако вводим пароль как если бы мы это делали вручную
- а тут мы собственно и выполняем сформированную ранее консольную команду