Solaris 11 和 nfs idmapping

Solaris 11 和 nfs idmapping

一个简单的问题在 Solaris 11 中我创建了一个 nfs 共享

zfs set share.nfs=on rpool/public

我的 Linux 客户端安装它..

mount solaris2:/var/public /mnt/share

我想向 myuser 授予写权限,我知道三种解决方案

解决方案1:chmod 777

chmod 777 /var/public #NO COMMENT

解决方案 2:使远程系统和本地系统之间的 uid 相同

将本地 Solaris 用户的 uid 更改为远程 Linux 用户上的 uid,然后给出一个 acl,如果您只有一个用户,这还可以,但在多用户系统中简直太糟糕了(您必须用最新的 uid 替换所有旧的 uid! )

方案3:将远程用户的uid映射到本地用户,然后赋予acl

idmap add remoteuser@remotehost unixuser:myuser
chmod A=user:myuser:add_file/read_data/execute/write_data/execute:allow /var/public

但不起作用。本地用户可以向/var/public写入数据,而远程则不能,为什么?

Edit1:据我了解,idmap 命令将 gid/uid 转换为 SID,对于 AD 或 LDAP 很有用

编辑2:上伊卢莫斯他们添加了一些有趣的选项 uidmap 和 gidmap,只有一个问题:Solaris11 不是 Illumos“发行版”,这些选项根本不存在

答案1

等待更好的解决方案,这个解决方法很好:在客户端和服务器上创建一个具有相同 gid 的组,然后创建 acl。

在客户端 (Linux)

groupadd -g 10093 nfs-users
usermod -aG nfs-users myuser

在服务器上 (Solaris)

groupadd -g 10093 nfs-users
usermod -G nfs-users myuser

然后我将 acl 添加到共享 zfs 集(安装在 /var/public 上)

chmod A+group:nfs-users:write_data/append_data/execute/add_file/add_subdirectory:allow /var/public

测试:工作正常,属于 nfs-users 组的所有用户(远程和本地)都可以在共享上写入。更好的解决方案是使用 AD(或 samba4)+ idmap,但此解决方法在本地文件环境中也可以正常运行。

相关内容