hosts/bsd: only use sudo if we can't write /etc/exports [GH-2643]
This commit is contained in:
parent
13dc1832b6
commit
aa981cf4ec
|
@ -21,6 +21,8 @@ IMPROVEMENTS:
|
||||||
more easily. Vagrant will login for you if you specify auth. [GH-4042]
|
more easily. Vagrant will login for you if you specify auth. [GH-4042]
|
||||||
- providers/docker: `stop_timeout` can be used to modify the `docker stop`
|
- providers/docker: `stop_timeout` can be used to modify the `docker stop`
|
||||||
timeout. [GH-4504]
|
timeout. [GH-4504]
|
||||||
|
- synced\_folders/nfs: Won't use `sudo` to write to /etc/exports if there
|
||||||
|
are write privileges. [GH-2643]
|
||||||
- synced\_folders/smb: Credentials from one SMB will be copied to the rest. [GH-4675]
|
- synced\_folders/smb: Credentials from one SMB will be copied to the rest. [GH-4675]
|
||||||
|
|
||||||
BUG FIXES:
|
BUG FIXES:
|
||||||
|
|
|
@ -102,10 +102,16 @@ module VagrantPlugins
|
||||||
# First, clean up the old entry
|
# First, clean up the old entry
|
||||||
nfs_cleanup(id)
|
nfs_cleanup(id)
|
||||||
|
|
||||||
|
# Only use "sudo" if we can't write to /etc/exports directly
|
||||||
|
sudo_command = ""
|
||||||
|
sudo_command = "sudo " if !File.writable?("/etc/exports")
|
||||||
|
|
||||||
# Output the rendered template into the exports
|
# Output the rendered template into the exports
|
||||||
output.split("\n").each do |line|
|
output.split("\n").each do |line|
|
||||||
line = Vagrant::Util::ShellQuote.escape(line, "'")
|
line = Vagrant::Util::ShellQuote.escape(line, "'")
|
||||||
system("echo '#{line}' | sudo tee -a /etc/exports >/dev/null")
|
system(
|
||||||
|
"echo '#{line}' | " +
|
||||||
|
"#{sudo_command}tee -a /etc/exports >/dev/null")
|
||||||
end
|
end
|
||||||
|
|
||||||
# We run restart here instead of "update" just in case nfsd
|
# We run restart here instead of "update" just in case nfsd
|
||||||
|
@ -165,12 +171,19 @@ module VagrantPlugins
|
||||||
|
|
||||||
user = Process.uid
|
user = Process.uid
|
||||||
|
|
||||||
|
command = []
|
||||||
|
command << "sudo" if !File.writable?("/etc/exports")
|
||||||
|
command += [
|
||||||
|
"sed", "-E", "-e",
|
||||||
|
"/^# VAGRANT-BEGIN:( #{user})? #{id}/," +
|
||||||
|
"/^# VAGRANT-END:( #{user})? #{id}/ d",
|
||||||
|
"-ibak",
|
||||||
|
"/etc/exports"
|
||||||
|
]
|
||||||
|
|
||||||
# Use sed to just strip out the block of code which was inserted
|
# Use sed to just strip out the block of code which was inserted
|
||||||
# by Vagrant, and restart NFS.
|
# by Vagrant, and restart NFS.
|
||||||
system(
|
system(*command)
|
||||||
"sudo", "sed", "-E", "-e",
|
|
||||||
"/^# VAGRANT-BEGIN:( #{user})? #{id}/,/^# VAGRANT-END:( #{user})? #{id}/ d",
|
|
||||||
"-ibak", "/etc/exports")
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.nfs_checkexports!
|
def self.nfs_checkexports!
|
||||||
|
|
Loading…
Reference in New Issue