我有两台服务器,s1(debian stretch)和s2(openSUSE Leap 15.1)。
s1 有一个本地目录,其中包含许多子目录,每个子目录都需要特定的组成员身份才能访问。现在应该可以在 s2 上使用这些子目录,我正在尝试使用 来实现这一点nfs
。两台机器都使用 pam-ldap(指向同一个 LDAP 服务器)进行所有用户/组管理,通常运行良好。
对于 s1,我添加到/etc/exports
<path_to_dir> <local_ip_of_s2>(rw,sync,no_subtree_check)
然后执行
exportfs -ra
systemctl restart nfs-kernel-server
systemctl restart portmap
在 s2 上
mount -t nfs <local_ip_of_s1>:<path_on_s1> <path_on_s2>
看起来效果很好。
但是,如果我更新组成员身份,这些在 s2 上不起作用。例如:
- 我有一个属于组
ABCD
和权限的目录drwxrws--x
。 - 本地用户不属于该组,无法访问两台机器上任何一台的目录
- 我将此用户添加到组
- 在 s1 上,我看到该用户现在是该组的一部分,他们可以访问该目录
- 在 s2 上,我看到该用户现在是该组的一部分,但他们无法访问该目录:
ls: cannot open directory 'ABCD': Permission denied
到目前为止,我发现的唯一更新此类更改的方法是
- 卸载 s2 上的共享
systemctl restart nfs-kernel-server
在 s1 上执行- 在 s2 上重新挂载
...这实际上不可行,因为如果其他人当前正在任何目录中处理 s2,这是不可能的。
我可以在一台或两台机器上做些什么来更新它而不需要重新安装?