Victor3D Info
Search    Contact

Команды с 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) 
  1. так мы определяем перевод каретки, он же Энтер
  2. тут мы формируем консольную команду, которая выполнится со словом sudo, а по завершении выполнения системе указывается, что в следующий раз надо давать запрос на ввод пароля после команды с sudo
  3. тут мы говорим системе, чтобы она ближайшие 5 минут выполняла команды sudo без ввода пароля; при этом, однако вводим пароль как если бы мы это делали вручную
  4. а тут мы собственно и выполняем сформированную ранее консольную команду