From abe87b2fdc124ef426c016d44d2f6f4792f0cbe3 Mon Sep 17 00:00:00 2001 From: Emanuel Steen Date: Mon, 6 Dec 2021 07:19:16 -0600 Subject: [PATCH] Only clean up /etc/fstab if it really contains Vagrant data This change, together with `allow_fstab_modification = false`, allows to run a guest without root/sudo privileges which been broken since Vagrant 2.2.10. --- .../guests/linux/cap/persist_mount_shared_folder.rb | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/plugins/guests/linux/cap/persist_mount_shared_folder.rb b/plugins/guests/linux/cap/persist_mount_shared_folder.rb index 935febab0..c634e2563 100644 --- a/plugins/guests/linux/cap/persist_mount_shared_folder.rb +++ b/plugins/guests/linux/cap/persist_mount_shared_folder.rb @@ -64,9 +64,17 @@ module VagrantPlugins machine.communicate.test("test -f /etc/fstab") end + def self.contains_vagrant_data?(machine) + machine.communicate.test("grep '#VAGRANT-BEGIN' /etc/fstab") + end + def self.remove_vagrant_managed_fstab(machine) if fstab_exists?(machine) - machine.communicate.sudo("sed -i '/\#VAGRANT-BEGIN/,/\#VAGRANT-END/d' /etc/fstab") + if contains_vagrant_data?(machine) + machine.communicate.sudo("sed -i '/\#VAGRANT-BEGIN/,/\#VAGRANT-END/d' /etc/fstab") + else + @@logger.info("no vagrant data in fstab file, carrying on") + end else @@logger.info("no fstab file found, carrying on") end