我该如何设置我的 Linux 机器,以便如果 Active Directory 域控制器关闭,我仍然可以以 root 身份登录,而不会出现任何超时或延迟?
按照大多数文档中的示例,我pam_winbind.so
之前已pam_unix.so
在配置中列出/etc/pam.d
。我相信这是问题的原因。我记得看到过其他/etc/pam.d
设置,它们会更改顺序,并可能添加或pam_localuser
(pam_succeed_if
以查看 uid 是否小于 500),但现在我找不到任何具体信息(而且我对 PAM 的了解还不够深入,无法快速轻松地自己想出一个强大的配置)。
如果 Active Directory 不可用,建议如何设置 PAM 与 Winbind 以避免超时和延迟?
答案1
您不仅通常想要pam_unix
首先这样做,而且当您启动任何会话时,pam 将使用 枚举您所属的组initgroups(3)
,这将遍历group
中定义的所有后端/etc/nsswitch.conf
。
造成这种行为的原因有几个,主要是关注点分离方面的技术限制,但简而言之,这允许您指定/etc/groups
LDAP 用户所属的位置wheel
以允许其这样做sudo
(随机示例)。
这导致root
在具有远程目录服务器的主机上登录失败或非常缓慢的故事,即使用户是在本地定义的。这些故事是真实的,但最常见的原因是配置不正确。
如果您使用winbind
,则可以定义不会通过 查找其组的用户winbind
。 相应的选项是winbind initgroups blacklist
中的 (全局) smb.conf
。 它于 2007 年通过http://git.samba.org/?p=samba.git;a=commitdiff;h=7399ab779d7100059475ed196e6e4435b2b33bbd
请注意,默认值包含root
,因此您可能不需要覆盖它。
对于访客:
如果您使用nss_ldap
,ldap.conf
则提供类似的nss_initgroups_ignoreusers
。请参阅nss_ldap(5)
。