情况如下:
- 我希望用户usr在系统中的任何位置都具有组grp的相同权限。
- grp不是本地组,它来自我无法控制的 LDAP 服务器。
我对 Linux 没有太多经验,所以我做了一些研究,发现了两种可能的方法来实现这一点:
- 创建一个同名的本地组,并使usr成为其中的一部分。但是,我不太确定这将如何影响来自原始grp的远程用户。我是否需要更改 NSS 配置文件才能使其正常工作?在这种情况下,配置应该是什么?
- 使用 ACL 授予usr权限。我的问题是它看起来有点复杂。据我所知,没有自动的方法来做我想做的事,我必须制作一个遍历文件系统的脚本,检查每个文件和目录的组权限,然后给usr相同的权限。我是否遗漏了什么,或者这将是唯一的方法?
不修改 LDAP 数据库就无法完成。您可以将本地用户添加到 LDAP 组,但必须在 LDAP 服务器上完成。
问题是本地组和 LDAP 组是不同的“世界”。可以将系统配置为同时使用两者,但其中一个是主要的,另一个是次要的。如果在主要来源中找到某些内容,则不会询问次要来源。这使您的第一种方法不可行:本地grp会使 LDAP 组黯然失色(或者,如果 LDAP 是主要的,它将完全被忽略)。
第二种方法可以工作,但是,正如您所说:复杂、资源广泛(遍历文件系统会产生大量 IO)、脆弱,并且更像是一种 hack,而不是实际的解决方案。
我认为最好的方法是让 LDAP 服务器的管理员将用户包含在grp组中。另外,我在这里可能错了,但对我来说感觉像是一个XY 问题。