我们正准备将 Winbind/Samba 添加到一些 CentOS 服务器上。UNIX 身份管理正在我们的 DC 上运行,到目前为止测试良好。有一种情况我遇到了麻烦,我确信它已在 /etc/pam.d/system-auth 中使用 UID 范围解决。我无法确定需要哪些具体行。以下是该情况:
- 我们通过 Puppet 部署了三个本地用户;当 DC 发生故障时,他们必须能够登录。他们必须是纯本地用户。
- 这些用户的本地用户名与其 AD 对应用户名相同(例如,jsmith 是 CentOS 本地用户的名称,而 jsmith 也是同一用户的 AD 用户名)
- 当 jsmith 登录时,它需要先在本地查找该用户。
- 本地用户通常 > UID 500,而我们的 AD/Winbind 用户 > UID 10000。
答案1
我有一个 /etc/pam.d/system-auth,它设置了本地用户首先进行身份验证,然后返回到 kerberos (pam_krb5.so)。我将在这里提供 pam_krb5.so 替换为 pam_winbind.so,以便为您提供一些入门知识。这是几年前拼凑起来的,我记得我们花了一些时间对其进行改进,才让它正常工作。
account required pam_unix.so broken_shadow
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 500 quiet
account [authinfo_unavail=ignore default=bad success=ok user_unknown=ignore] pam_winbind.so
account required pam_permit.so
password requisite pam_cracklib.so try_first_pass retry=3
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok
password sufficient pam_winbind.so use_authtok
password required pam_deny.so
session optional pam_keyinit.so revoke
session required pam_limits.so
session optional pam_mkhomedir.so umask=0077
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
session optional pam_winbind.so
答案2
您可以通过缓存 winbind 凭据来解决此问题。换句话说,您只有 AD UID,但其凭据会被缓存,这样即使 AD 不可用,他仍然可以登录。
看http://wiki.samba.org/index.php/PAM_Offline_Authentication了解更多信息。