更改 NFS 挂载权限 + 与来宾 VM 共享目录

更改 NFS 挂载权限 + 与来宾 VM 共享目录

我正在构建一个开发环境,其中主机环境 (OSX) 中的文件夹安装在运行 Ubuntu 来宾的 VirtualBox VM 中。

我们的经验是,简单的 VirtualBox 共享目录太慢,因此我们通常通过在来宾中将目录作为 NFS 挂载来实现这一点。从主机环境进行实时编辑是一项要求。

这样做的问题是chown和等操作chgrp会失败,我们需要复制一些接近我们生产环境的东西(例如www-data拥有 Apache 使用的文件)。

绑定文件系统看起来很有希望:

bindfs - 镜像或覆盖具有更改权限的本地目录

但似乎无法使用本机 unix 实用程序和系统调用来更改权限。这对我来说不起作用,因为我需要与提供盒子的现有配置管理系统(Salt、P​​uppet)集成。

就权限而言,是否有其他方法可以使 NFS 挂载看起来像常规目录?或者将目录安装到 VirtualBox VM 中的另一种选择?

编辑:这是安装的输出:

192.168.34.1:/Users/$me/src/states /etc/apps/state type nfs (rw,vers=3,addr=192.168.34.1)
192.168.34.1:/Users/$me/src/apps on /srv/apps type nfs (rw,vers=3,addr=192.168.34.1)

当我说更改权限“失败”时,我的意思是我收到“不允许操作”错误。

例如:

$ ls -l /srv/www
total 8
drwxrwxr-x 4 501 dialout 136 May 31 16:20 default_vhost
drwxrwxr-x 5 501 dialout 170 May 31 16:20 default_vhost_ssl
$ chown root /srv/www/*
chown: changing ownership of `/srv/www/default_vhost': Operation not permitted
chown: changing ownership of `/srv/www/default_vhost_ssl': Operation not permitted

答案1

只有root可以使用chown。无论是否使用 NFS,您都需要chown以 root 身份运行。

默认情况下,NFS将本地root用户映射到远程用户nobody。这使得chown无法使用,您必须在服务器上运行它。如果客户端 root 可以在 NFS 文件系统上拥有 root 权限,请使用该no_root_squash选项导出文件系统。也就是说,在服务器上,在 中/etc/exports,您应该有类似的内容。

/Users/$me/src/states 192.168.34.2(no_root_squash,async)

相关内容