我对设置 NFS 挂载还比较陌生,我正在尝试在 AWS 云中开始这项工作。我最终想要一个 CentOS 机箱作为 NFS 服务器,并可以让不同类型的机器(Ubuntu 或 CentOS)以完全读/写权限访问 NFS 共享。我已经让它工作了一段时间,但现在我无法写入 Ubuntu 客户端上未在 Ubuntu 系统上创建/最后修改的文件。(作为测试,我刚刚在 Ubuntu 客户端上创建了一个文本文件,它没问题。如果我在 CentOS 系统上修改它,我可以在 Ubuntu 中正常读取它,但我不能再写入它。)
配置:
在 CentOS 服务器上,我的 /etc/exports 文件如下:
/hello *(rw,async,no_root_squash,no_subtree_check,fsid=0)
(我暂时只使用通配符以方便访问 - 只有我特定的 AWS 安全组中的系统才能真正访问 NFS 端口。)配置选项在某种程度上是从互联网上的不同指南中汇总而来的。我读到过 fsid=0 是让共享在 Ubuntu 中可挂载的关键。然后我使用exportfs -a
在 Ubuntu 和 CentOS 客户端上,我创建了目录(以超级用户/root 身份),/mnt/mymnt
然后运行:
mount -t nfs4 <MY_CENTOS_SERVER_DNS>.us-west-1.compute.amazonaws.com:/ /mnt/mymnt
挂载共享。
权限
在CentOS服务器上,共享目录权限如下:
(来自 ls -l /:)
drwxrwxrwx. 2 1000 1000 4096 Apr 24 16:13 hello
服务器上 /hello 的目录列表显示:
total 8
-rw-rw-r--. 1 1000 1000 0 Apr 23 20:21 HELLO_CLIENT
-rw-rw-r--. 1 centos centos 17 Apr 24 16:05 HI_CENTOS
-rw-rw-r--. 1 centos centos 47 Apr 24 16:13 HI_UBUNTU
-rw-rw-r--. 1 1000 1000 0 Apr 24 16:24 TEST2
在 Ubuntu 服务器上,相同的目录列表显示:
total 16
drwxrwxrwx 2 nobody nogroup 4096 Apr 24 16:24 ./
drwxr-xr-x 5 root root 4096 Apr 23 19:07 ../
-rw-rw-r-- 1 nobody nogroup 0 Apr 23 20:21 HELLO_CLIENT
-rw-rw-r-- 1 nobody nogroup 17 Apr 24 16:05 HI_CENTOS
-rw-rw-r-- 1 nobody nogroup 47 Apr 24 16:13 HI_UBUNTU
-rw-rw-r-- 1 nobody nogroup 0 Apr 24 16:24 TEST2
在 CentOS 客户端上,我看到了同样的东西,但是用组nobody
代替了nogroup
(可能是句法上的东西)。
概括
我正在尝试通过 NFSv4 将目录从 CentOS 服务器完全共享给 CentOS 和 Ubuntu 客户端。我可以挂载共享,但无法在 Ubuntu 系统上写入未在 Ubuntu 系统上创建的文件。我似乎配置不正确吗?有没有更好的方法来完成我想做的事情?