У меня Vagrant работает под управлением Ubuntu в качестве гостевой ОС поверх хоста Windows 7. При работе с общей папкой между гостем и хостом, если файл доступен только для чтения, он не может быть удален. Например:
vagrant@vagrant-ubuntu-trusty-64:/vagrant/temp$ touch testfile
vagrant@vagrant-ubuntu-trusty-64:/vagrant/temp$ chmod 555 testfile
vagrant@vagrant-ubuntu-trusty-64:/vagrant/temp$ ls -lA
total 0
-r-xr-xr-x 1 vagrant vagrant 0 Aug 22 11:36 testfile
vagrant@vagrant-ubuntu-trusty-64:/vagrant/temp$ rm testfile
rm: remove write-protected regular empty file ‘testfile’? y
rm: cannot remove ‘testfile’: Operation not permitted
vagrant@vagrant-ubuntu-trusty-64:/vagrant/temp$
Я тоже пробовал с рутом безуспешно.Если я изменю атрибут «только для чтения» (запустив « attrib -R testfile » в Windows), его можно удалить:
vagrant@vagrant-ubuntu-trusty-64:/vagrant/temp$ ls -lA
total 0
-rwxrwxrwx 1 vagrant vagrant 0 Aug 22 11:42 testfile
vagrant@vagrant-ubuntu-trusty-64:/vagrant/temp$ rm testfile
vagrant@vagrant-ubuntu-trusty-64:/vagrant/temp$
Имеет смысл, файл теперь доступен для записи. Если папка, в которой находится файл только для чтения, не является общей, я могу удалить ее:
vagrant@vagrant-ubuntu-trusty-64:/vagrant/temp$ cd /tmp
vagrant@vagrant-ubuntu-trusty-64:/tmp$ touch testfile2
vagrant@vagrant-ubuntu-trusty-64:/tmp$ chmod 555 testfile2
vagrant@vagrant-ubuntu-trusty-64:/tmp$ ls -l testfile2
-r-xr-xr-x 1 vagrant vagrant 0 Aug 22 11:44 testfile2
vagrant@vagrant-ubuntu-trusty-64:/tmp$ rm testfile2
rm: remove write-protected regular empty file ‘testfile2’? y
vagrant@vagrant-ubuntu-trusty-64:/tmp$
Я предполагаю, что в первом случае Windows не позволяет процессу VirtualBox удалить файл только для чтения. Есть ли способ сказать Windows, чтобы разрешить удаление? Может быть, настроить какое-то разрешение. Кстати, я запускаю процесс VirtualBox с повышенными привилегиями, потому что мне нужно было иметь возможность создавать символические ссылки (я следовал этой процедуре)