在Synology NAS上使用NFS进行用户ID映射


15

我有一个Synology NAS盒子(运行DSM 5.1),我通过NFS导出了一个目录。我正试图将它安装在我的Ubuntu盒子上。

它大部分工作正常,但我遇到了用户和组映射的问题。在Ubuntu框中,我是uid 1000(roger),gid 1000(roger)。在Synology上,我有uid 1026(roger),100组(用户)。

如果我使用NFSv3,它使用数字uid / gid值,这意味着所有权在Synology上搞砸了。

如果我只使用相同的用户从同一个Ubuntu框访问NFS安装,这没关系,但我也使用CIFS(SMB)从Windows框访问该目录,这意味着权限是错误。

如果我使用NFSv4( mount -o nfsvers=4 ),使用Synology上的默认设置,然后拥有的文件 roger.users 在Synology看来属于 roger.users 从Ubuntu框中查看时。这很好。

但是,当我 touch 一份文件:

roger@ubuntu$ touch /mounts/diskstation/music/foo

它最终归自己所有 1000.1000 在Synology上,并显示为拥有者 nobody.4294967294 从Ubuntu框中查看时。

我在Synology论坛上找到的所有主题都可以追溯到2011年,当时不支持NFSv4,或者由人们提出相同问题然后放弃。

为了完整, /etc/exports 具有:

/volume1/music  10.0.0.0/24(rw,async,no_wdelay,root_squash,insecure_locks,sec=sys,anonuid=1025,anongid=100)

...而且我将它安装在Ubuntu盒子上:

mount -t nfs diskstation:/volume1/music /mounts/diskstation/music/ -o rw,nfsvers=4

我发现了一些提示 sec=sys 可能是个问题: 为什么NFSv4 uid / gid映射不适用于AUTH_UNIX(AUTH_SYS) ,但这没有解决方案。

有没有一种简单的方法可以解决这个问题?有更复杂的( 咳嗽 Kerberos的 咳嗽 )解决这个问题的方法?

说真的,如果是Kerberos 答案,我会接受这个打击,但我想在浪费一大堆时间之前知道。

更新 :而 Synology文档 谈到各种Kerberos选项,我在UI中找不到它们。该 发行说明 状态“如果实施Kerberos安全风味......”。我发现(但不能再找到)一个页面暗示它可能不在某些模型上。根据系统信息页面,我有一个DS211。也许我运气不好?


分别配置ldap服务器。然后在NFS客户端(您的ubuntu框)上,配置ldap客户端。还配置autofs服务,以便在nfs客户端计算机(ubuntu)上自动挂载nfs共享(来自NAS)。在NFS客户端上,创建ssh用户以访问用户的内容
Sathish

Answers:


6

要使NFSv4 ID映射正常工作,客户端和服务器都必须运行 idmapd ID Mapper守护进程并具有相同的功能 Domain 配置在 /etc/idmapd.conf

这样,您的NFS客户端就会将其ID凭据发送为 roger@example.com 在线上的NFS命令中,您的NFS服务器idmapper将其映射到被调用的用户 roger 在NFS服务器上。 UID和GID无关紧要,它们由idmapper映射到每个系统上。

不过我在Synology上并没有那么烦。我的 共享文件夹 具有以下权限:

  • 权限
    • 本地用户
      • Admin =读/写
  • NFS权限
    • 壁球
      • 将所有用户映射到admin

这导致了 anonuid=1024,anongid=100 (该 admin 用户和 users group)被添加到出口中 /etc/exports 在NAS上。

我的NFS客户端(没有运行ID Mapper)以我的用户身份发送我的NFS命令( 1000:1000 并且因为NAS上不存在UID和GID,它将我的UID和GID转换为 1024:100 所以我被视为拥有完全权限的管理员用户。

对于商业环境而言,这是一种非常不专业且不安全的NFS使用,但仅仅对我来说,在家中访问我的文件是滥用我可以接受的NFS行为。

另一种选择是制作 roger 在NFS客户端和NAS上的UID和GID相同,然后您可以使用没有ID映射的NFSv4,或者您可以使用仅依赖于UID和GID的NFSv3。


0

我有同样的问题试图找出这个模型。原来Kerberos是其中的一部分 Active Directory服务器包 ,包装说明包括可用的Synology型号。 (我得到的是1515,而不是1515+,所以我也运气不好。)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.