![使用 nsswitch compat 有什么缺点?](https://linux22.com/image/616531/%E4%BD%BF%E7%94%A8%20nsswitch%20compat%20%E6%9C%89%E4%BB%80%E4%B9%88%E7%BC%BA%E7%82%B9%EF%BC%9F.png)
在我当前的 LDAP 设置中,“getent passwd”显示 LDAP 中存在的所有 600 多个用户,而不是仅枚举有权访问此网络组/服务器的 20 个 LDAP 用户。
可以通过兼容模式过滤用户来解决这个问题:
nsswitch.conf
passwd: files compat
passwd_compat: ldap
in passwd file, add +@netgroup.
我想知道,使用这个 nsswitch 兼容模式有什么缺点?
答案1
很多东西都会假设您正在使用 NIS(由于多种原因,这很糟糕),而这正是 compat 的真正含义(您可以使用 NIS 语法,如 +@netgroup 等)。我假设您实际上并没有在这些盒子上使用 YP,而是手动创建相关文件(或使用 puppet 或其他方式)。在这种情况下,我认为没有什么大缺点,只是需要进行一些额外的配置,并且您需要关注兼容性(没有双关语的意思)。您可以通过在 ldap.conf 中设置一个更向前兼容的过滤器来获得相同的结果。
与 +/- 语法交互(兼容模式)
不带 NYS 的 Linux libc5 没有名称服务开关,但允许用户进行一些策略控制。在 /etc/passwd 中,您可以拥有以下形式的条目:+user 或 +@netgroup(包括 NIS 密码映射中的指定用户)、-user 或 -@netgroup(排除指定用户)和 +(包括 NIS 密码映射中除排除的用户之外的所有用户)。由于大多数人只在 /etc/passwd 末尾放置一个 + 以包括 NIS 中的所有内容,因此开关为这种情况提供了一种更快的替代方案(
passwd: files nis') which doesn't require the single + entry in /etc/passwd, /etc/group, and /etc/shadow. If this is not sufficient, the NSS
compat' 服务提供完整的 +/- 语义。默认情况下,源是nis', but this may be overriden by specifying
nisplus',作为伪数据库 passwd_compat、group_compat 和 shadow_compat 的源。这些伪数据库仅在 GNU C 库中可用。