我在 Windows 7 主机上运行 Vagrant,将其作为客户操作系统运行 Ubuntu。在共享文件夹在客户机和主机之间,如果文件是只读的,则无法删除。例如:
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 测试文件' 在 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 允许删除?也许可以设置一些权限。顺便说一句,我正在使用提升权限因为我需要能够创建符号链接(我按照这个程序)