Vagrant Up and annoying NFS password asking
The official Vagrant docs now cover this: https://www.vagrantup.com/docs/synced-folders/nfs.html#root-privilege-requirement
You need to add entries to the /etc/sudoers
file, and the way to edit that is to type this at the terminal: sudo visudo
Type your password, and you're editing the file. You'll want to paste these lines below (depending on whether you are running Vagrant on OS X or Linux.
If you're not familiar with vim, which it opens in, this page helped. Basically, copy the appropriate block of text below. Then, in visudo, go to the spot you want to paste text into the file (the end of the file is fine), and hit "i" to go into insert mode. CMD+V to paste your text. Then, hit ESC, then type :w
to save your changes and then :q
to quit.
As of version 1.7.3, the sudoers file in OS X should have these entries:
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
%admin ALL=(root) NOPASSWD: VAGRANT_EXPORTS_ADD, VAGRANT_NFSD, VAGRANT_EXPORTS_REMOVE
And Linux should have these entries:
Cmnd_Alias VAGRANT_EXPORTS_CHOWN = /bin/chown 0\:0 /tmp/*
Cmnd_Alias VAGRANT_EXPORTS_MV = /bin/mv -f /tmp/* /etc/exports
Cmnd_Alias VAGRANT_NFSD_CHECK = /etc/init.d/nfs-kernel-server status
Cmnd_Alias VAGRANT_NFSD_START = /etc/init.d/nfs-kernel-server start
Cmnd_Alias VAGRANT_NFSD_APPLY = /usr/sbin/exportfs -ar
%sudo ALL=(root) NOPASSWD: VAGRANT_EXPORTS_CHOWN, VAGRANT_EXPORTS_MV, VAGRANT_NFSD_CHECK, VAGRANT_NFSD_START, VAGRANT_NFSD_APPLY
Note that these change from one version of Vagrant to another, so the above might be outdated. The important thing is that the docs now cover it.
The exact commands can change between Vagrant versions, so it's impossible to list ones that would always work.
Anyway, the sudoers rules in this gist should be still quite close. Check out /var/log/auth.log if it reveals the actual commands for your Vagrant version and adapt the rules accordingly.
For anyone doing this for OSX (I'm on MacOS Sierra Version 10.12.6) I had a hard time with permissions even after adding those lines. This post really helped:
https://github.com/cogitatio/vagrant-hostsupdater/issues/50
Basicly its the fact that you dont have permissions set for the that folder yourself. So you need to run:
sudo chmod +a "$USER allow write,append" /etc/hosts