NFS:写入/创建的权限?

NFS:写入/创建的权限?

我已经使用 NFS 设置了服务器和客户端(均为 LinuxMint 21.3),以便客户端具有读写访问权限。但是,它成功读取但无法写入。我在这里和其他地方搜索了很多问题,但没有看到任何似乎明确提供解决方案的内容。我试过这个这证实了我所做的一切。

设置如下:

服务器/etc/exports设置为读/写:

/exports  192.168.0.0/28(rw,no_subtree_check)

客户端/etc/fstab设置为在启动时挂载:

media:/exports /mnt/nfs/media-server  nfs      auto,noatime,defaults,x-gvfs-show    0       0

服务器导出的权限(此示例仅选择一个目录):

root@media:~# ls -al /exports/Software
total 16
drwxr-xr-x 4 root root 4096 Mar 28 11:56 .
drwxr-xr-x 8 root root 4096 Mar 28 11:55 ..
drwxr-xr-x 2 root root 4096 Mar 28 11:56 Linux
drwxr-xr-x 2 root root 4096 Mar 28 11:56 Windows

客户端挂载的权限:

root@brawn:~# ls -al /mnt/nfs/media-server/Software
total 16
drwxr-xr-x 4 root root 4096 Mar 28 11:56 .
drwxr-xr-x 8 root root 4096 Mar 28 11:55 ..
drwxr-xr-x 2 root root 4096 Mar 28 11:56 Linux
drwxr-xr-x 2 root root 4096 Mar 28 11:56 Windows

但是,从客户端复制到服务器(或从客户端在服务器上创建文件夹)的尝试失败。

尝试以我的用户身份进行复制(在两个系统上具有相同的 uid、gid)

:~$ cp /media/<user>/Storage/Software/Linux/zoom*.deb /mnt/nfs/media-server/Software/Linux
cp: cannot create regular file '/mnt/nfs/media-server/Software/Linux/zoom_amd64.deb': Permission denied

即使以 root 身份尝试也失败:

:~# cp /media/<user>/Storage/Software/Linux/zoom_amd64.deb /mnt/nfs/media-server/Software/Linux
cp: cannot create regular file '/mnt/nfs/media-server/Software/Linux/zoom_amd64.deb': Permission denied

更新

使用@vidarlo 的答案中提供的信息,我做了以下事情:

在服务器上:

sudo groupadd -g 1003 nfsshare
sudo usermod -a -G nfsshare <user>
cd /exports
sudo chgrp -R nfsshare /exports
sudo chmod -R 775 /exports
sudo exportfs -ar

在客户端上:

sudo groupadd -g 1003 nfsshare
sudo usermod -a -G nfsshare <user>
mount -a

我的用户现在可以完全访问导出的内容。

答案1

首先,作为用户,它失败,因为该文件夹归所有root,并且只有root写权限。

其次,由于 NFS默认root不信任远程系统,因此它会失败。root

您有两个选择:

  1. 通过更改所有者和权限来授予用户访问权限
  2. 使用以下方式导出目录no_root_squash-选项赋予 root 完全权限。

后者是从安全角度来看这不是一个好主意- 至少在没有任何进一步操作的情况下不会,因为它将允许远程 root 在服务器上创建 suid 二进制文件...

相关内容