Being able to edit a file does not mean you can write in its parent directory

Interactive `sed` needs write permission on the file itself. However, it
may create a backup file, which leads to the fact that the directory
where the file is located must be writable as well. That is a side
effect because this directory does not need to be writable.

This patch fixes this side effect by editing the file in `/tmp`, and
replaces it right after.
This commit is contained in:
William Durand 2014-12-19 12:22:26 +01:00 committed by William Durand
parent f7894d9c8c
commit 6ff15fbedb
No known key found for this signature in database
GPG Key ID: A509BCF1C1274F3B
1 changed files with 1 additions and 1 deletions

View File

@ -102,7 +102,7 @@ module VagrantPlugins
# Use sed to just strip out the block of code which was inserted
# by Vagrant
system("#{sudo_command}sed -r -e '\\\x01^# VAGRANT-BEGIN:( #{user})? #{id}\x01,\\\x01^# VAGRANT-END:( #{user})? #{id}\x01 d' -ibak /etc/exports")
system("cp /etc/exports $TMPDIR && #{sudo_command}sed -r -e '\\\x01^# VAGRANT-BEGIN:( #{user})? #{id}\x01,\\\x01^# VAGRANT-END:( #{user})? #{id}\x01 d' -ibak $TMPDIR/exports ; cp $TMPDIR/exports /etc/exports")
end
def self.nfs_opts_setup(folders)