No password required for vagrant operations on mac

selwyn's picture

I have to often issue commands like: vagrant up, or vagrant reload and OSX wants to be sure that I know what I am doing so it cleverly asks for my password.  Thanks to the efforts of a very smart coworker, there is a workaround to this problem.

 

First do:
which sed

and replace the /usr/bin/sed below with your path to sed)

These go under cmd alias specification section

Use this command to edit /etc/sudoers (don't do it directly):
sudo visudo

# Allow passwordless startup of Vagrant with vagrant-hostsupdater.
Cmnd_Alias VAGRANT_HOSTS_ADD = /bin/sh -c echo "*" >> /etc/hosts
Cmnd_Alias VAGRANT_HOSTS_REMOVE = /usr/bin/sed -i -e /*/ d /etc/hosts

# Allow passwordless startup of Vagrant with NFS synced folder option.
Cmnd_Alias VAGRANT_EXPORTS_ADD = /usr/bin/tee -a /etc/exports
Cmnd_Alias VAGRANT_NFSD = /sbin/nfsd restart
Cmnd_Alias VAGRANT_EXPORTS_REMOVE = /usr/bin/sed -E -e /*/ d -ibak /etc/exports

This goes toward the end of the file after this code:

# root and users in group wheel can run anything on any machine as any user
root            ALL = (ALL) ALL
%admin          ALL = (ALL) ALL

Add this:

%admin ALL=(root) NOPASSWD: VAGRANT_HOSTS_ADD, VAGRANT_HOSTS_REMOVE, VAGRANT_EXPORTS_ADD, VAGRANT_NFSD, VAGRANT_EXPORTS_REMOVE
 

Voila!  Now you can issue commands like:

vagrant up

and they will merrily be executed by OSX without requiring a password.  Thanks to Scott Reese of Acquia for sharing this with me.