如何在 Synology NAS 上创建 NFS 共享,以便只有特定的 Linux PC 具有写访问权限?

如何在 Synology NAS 上创建 NFS 共享,以便只有特定的 Linux PC 具有写访问权限?

我拥有的:

  • Synology NAS(IP xxx11)
    • 安装了 Docker,并设置了docker用户和组,
    • 使用用户运行许多容器docker
    • 所有集装箱的储存空间/volume1/docker/
    • NFS 共享/volume1/docker/(见下文脚注 1);
  • Linux 电脑 (IP xxx10)
    • Docker 已安装,尚无docker用户和组,
    • /media/docker像在 PC 上一样挂载 NFS 共享(参见下面的脚注 1),
    • 该用户仅拥有使用权,
    • sudo访问,但我不想以 root 身份运行所有东西!

我想要的是:

  • 使用运行容器PC 的 CPU,
  • 保持容器的NAS 上的存储,
  • 仅限此电脑(或者可能只有 PC 上的特定用户?)
    应具有对 NFS 共享的网络访问权限。

问题:

  1. 在 NAS 上,我如何阻止读取访问除了 PC 之外,还能从其他地方进行共享吗?
  2. 在 NAS 上,我如何授予写访问权限共享,但仅限于这台电脑?(并且仅限于特定用户??)
  3. 我需要在电脑上设置docker用户和组吗?我只需使用现有的(非 root)用户uid=1001
  4. 在 PC 上,如何配置/etc/fstab授予 PC 上的非 root 用户写权限?

脚注:

  1. 在 NAS 上,sudo cat /etc/exports给出:
/volume1/docker 192.168.1.10(rw,async,no_wdelay,crossmnt,no_root_squash,insecure_locks,sec=sys,anonuid=1025,anongid=100)
  1. 在 PC 上,cat /etc/fstab给出:
192.168.1.11:/volume1/docker /media/docker nfs rw,vers=4 0 0

答案1

/etc/exports在服务器(NAS)上导出所需路径:

/volume1/foo  192.168.1.10(async,rw,all_squash,anonuid=1038,anongid=65544)
# 192.168.1.10 is the only allowed client IP
# connections will be made as if with local user 1038, local group 65544

然后输入exportfs -r刷新(激活新设置)。

/etc/fstab在客户端(PC)上:

192.168.1.11:/volume1/foo /media/bar nfsvers=3 0 0
# 192.168.1.11 is the server
# forcing NFS version 3 because Synology NAS does not support version 4!

然后输入mount -a以激活新设置。

在客户端,touch /media/bar/foo.txt现在应该可以工作了,并且ls -l将显示该文件是使用 uid=1038 和 gid=65544 创建的。

相关内容