comando custom sudo

1

Como posso tornar as funções personalizadas acessíveis ao comando sudo?

Eu tenho meu Mac OS X configurado com Bootcamp, mas também com o VirtualBox para que eu possa executar o Windows para testar sites no IE. Eu tenho que executar essa seqüência de comandos para poder inicializar o Windows no VirtualBox:

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

É uma dor na bunda ter que fazer isso, então eu gostaria de automatizá-lo. Eu criei um arquivo chamado bootcamp.sh em uma pasta de desenvolvimento pessoal que eu mantenho. Eu tentei incluir o seguinte em vários arquivos:

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

Eu tentei incluí-lo em:

  • Meu pessoal .bash_profile (não vai funcionar obviamente)
  • / etc / bashrc
  • / private / etc / bashrc
  • / private / etc / profile.

Eu também tentei criar um link simbólico em / usr / bin / chamado bootcamp (sem extensão) e isso funcionou parcialmente, permitindo que eu fizesse:

sudo sh bootcamp

Mas ainda me incomoda ter que escrever sh lá. Eu tentei incluir um shebang (#! / Usr / bin / sh) no topo do arquivo bootcamp.sh , mas sem sorte.

Obrigado antecipadamente!

    
por Tixz 26.12.2011 / 23:02

2 respostas

1

Se o shebang for o caminho correto, você só precisará tornar o script executável para evitar a necessidade do sh .

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

E desde que /Users/myUserAccount/Development/Bash/ esteja no caminho, você pode fazer

sudo bootcamp.sh

Você também não precisa do sufixo .sh, você pode renomeá-lo para apenas o bootcamp.

A desvantagem disso é que você estará executando o VBoxManage como root. Então eu colocaria os comandos

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

no arquivo bootcamp.sh como estão. Em seguida, execute-o como

bootcamp.sh

Você será solicitado pelo primeiro sudo a fornecer a senha, mas isso significa que os comandos do VBox serão executados como um usuário normal.

    
por 26.12.2011 / 23:16
0

Você precisa tornar o arquivo executável com

chmod +x bootcamp.sh

Além disso, você não precisa de sudo dentro do script, se você usar o sudo para chamar o script.

    
por 26.12.2011 / 23:17