1

Как сделать пользовательские функции доступными для команды sudo?

У меня установлена Mac OS X с Bootcamp, но также с VirtualBox, поэтому я могу запустить Windows для тестирования сайтов в IE. Я должен выполнить эту последовательность команд, чтобы иметь возможность загружать Windows в VirtualBox:

sudo chmod 777 /dev/disk0s4
sudo chown myUserAccount bootcamp.vmdk bootcamp-pt.vmdk
sudo umount /Volumes/BOOTCAMP
VBoxManage list vms
VBoxManage startvm <uid>

Это боль в заднице, поэтому я хотел бы автоматизировать это. Я создал файл с именем bootcamp.sh в личной папке для разработчиков, которую я храню. Я попытался включить следующее в несколько файлов:

. /Users/myUserAccount/Development/Bash/bootcamp.sh

Я пытался включить его в:

  • Мой личный .bash_profile (не сработает, очевидно)
  • / И т.д. / Bashrc
  • / Частный / и т.д. / Bashrc
  • / Частный / и т.д. / профиль.

Я также попытался создать символическую ссылку в /usr /bin / с именем bootcamp (без расширения), и это сработало частично, что позволило мне сделать:

sudo sh bootcamp

Но она по- прежнему раздражает меня , чтобы писать ш там. Я пытался в том числе Шебанг (#! /usr /bin /sh) в верхней части файла bootcamp.sh , но без везения.

Заранее спасибо!

2 ответа2

1

Если shebang - правильный путь, то вам просто нужно сделать исполняемый скрипт, чтобы избежать необходимости в sh .

chmod +x /Users/myUserAccount/Development/Bash/bootcamp.sh

И если /Users/myUserAccount/Development/Bash/ находится в пути, вы можете просто сделать

sudo bootcamp.sh

Вам действительно не нужен суффикс .sh, вы можете переименовать его просто в bootcamp.

Недостатком этого является то, что вы будете запускать VBoxManage от имени пользователя root. Так что я бы поставил команды

sudo chmod 777 /dev/disk0s4
sudo chown myUserAccount bootcamp.vmdk bootcamp-pt.vmdk
sudo umount /Volumes/BOOTCAMP
VBoxManage list vms
VBoxManage startvm <uid>

в файл bootcamp.sh, как они есть. Затем запустите его как

bootcamp.sh

Вам будет предложено ввести пароль первым sudo, но это означает, что команды VBox будут запускаться как обычный пользователь.

0

Вы должны сделать файл исполняемым с

chmod +x bootcamp.sh

Кроме того, вам не нужен sudo внутри скрипта, если вы используете sudo для вызова скрипта.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .