我在 Mac 主机上的 VirtualBox 中运行 Ubuntu 服务器,该服务器装有 Apache 2、PHP 和各种 DBMS,用于进行 Web 开发工作。为了轻松创建/编辑我正在处理的文件,我通过 VirtualBox 共享目录功能将 Mac 主机上的目录挂载到/var/www/
。我在 Mac 主机上创建的每个文件在服务器上都具有以下权限:-rw-r--r-- 1 root root 6 2011-07-30 01:27 test
。
问题是大多数 PHP 脚本/框架/等等都需要写访问某些文件。必须修改模式每个需要写权限的新文件/目录。有没有办法自动为文件/目录设置正确的权限?
答案1
您可以在客户操作系统上安装共享文件夹时设置一些安装选项 - 以下是可用的选项:
http://manpages.ubuntu.com/manpages/maverick/man8/mount.vboxsf.8.html
您的问题有很多解决方案:
使文件被视为由 VirtualBox 用户的 uid 和 gid 所拥有(使用 uid 和 gid 安装选项)。
使用 dmode 和 fmode 选项覆盖所有文件/目录的模式。
将主机上的 umask 更改为限制较少的掩码。
我通常更喜欢第一个选项。对于你来说,文件的条目/etc/fstab
应该如下所示:
dev /var/www vboxsf umask=0022,gid=33,uid=33
答案2
几年来,我一直使用 VirtualBox 在我的 Ubuntu 主机上运行 LAMP 堆栈,并与 Macintosh 或 Windows 操作系统共享目录,没有遇到过这个问题,我发现 Samba 是最简单的解决方案。
使用 Samba,您可以设置默认权限掩码,用于共享文件夹中创建的所有新文件或文件夹。还有一个很棒的 Webmin 插件,让 Samba 管理变得轻而易举。