我正在尝试使用主机 Windows 机器中的共享文件夹作为来宾 Ubuntu 虚拟机上 lighttpd 的根目录。当我尝试更改权限时,没有任何反应。权限始终保持不变(如下所示)。无论文件类型如何,lighttpd 总是返回 403 错误。如何更改文件权限?
编辑:
研究表明将我的用户添加到 vboxsf 用户组将允许我更改权限。当我尝试使用 将我的用户添加到组usermod
时,它似乎已经奏效,但更改的内容会立即被覆盖并回滚。其他消息来源建议我必须手动安装具有我想要的权限的磁盘。尽管我尝试更改所有者,但 root 仍然是所有者。尽管我之前解释过尝试使用usermod
更改所有者。检查 /etc/group 文件中的组设置,我看到我的用户名已列出。但是,virtualbox 可能会产生干扰。
作为替代方案,我正在考虑从访客到主机进行网络共享。
结束编辑
/media/sf_Space.io$ ls -l
total 10
drwxrwx--- 1 root vboxsf 0 May 12 11:57 css
-rwxrwx--- 1 root vboxsf 8 May 12 12:27 index.html
drwxrwx--- 1 root vboxsf 0 May 12 11:57 js
drwxrwx--- 1 root vboxsf 0 May 12 11:57 PythonCGITest
-rwxrwx--- 1 root vboxsf 1181 May 12 11:57 README.md
drwxrwx--- 1 root vboxsf 0 May 12 11:57 sprites
-rwxrwx--- 1 root vboxsf 587 May 12 11:57 test.html
drwxrwx--- 1 root vboxsf 4096 May 12 11:57 'welcome page (sketch)'
经过几个小时的工作,我想出了自己的解决方案。权限问题与 virtualbox 如何从主机挂载文件系统有关。在这种情况下,我的主机文件系统是 ntfs。尽管有任何命令尝试更改卷权限,但权限仍将 root 作为所有者,权限设置为 770。
在您的虚拟机中安装来宾添加包。创建一个新的共享文件夹,只选中“永久”。不要选中自动安装框。此外,不确定这是否有必要,但还要在您的主机操作系统上安装 virtualbox 的扩展包。
在来宾机器(在 virtualbox 中运行的操作系统)上创建一个目录。
.sh
使用以下 bash 脚本创建一个文件:sleep 1 echo '[your password]' | sudo -S mount -t vboxsf -o rw,uid=1000,gid=1000 [share name] [path to the directory created in the previous step]
导航到“启动应用程序”管理器并使用以下命令创建一个新的启动:
xterm -e "/path/to/script/in/previous/step"
将文件权限设置为可执行:
chmod +x [file name]
.sudo apt-get install xterm
。我意识到“输入” sudo 密码的安全风险。但是,在这种情况下,我是唯一有权访问或希望运行此虚拟机的人。我认为风险很低。在采用此解决方案之前评估您的情况。另外,我记得读过在命令之前添加一个空格会阻止命令行将该命令存储在历史列表中。
这个解决方案在 Ubuntu 18LTS 上对我有用。我知道 rc.local 和 chron 作业,但是这些作业因分发版本而异,而且似乎有点命中或错过。rc.local 在我的安装中甚至不存在,手动创建文件什么也没做。
就我而言,没有任何效果 - 只需重新安装虚拟盒子来宾添加就可以了。我希望我早点尝试过。