我已将服务器设置为仅使用 LDAP 进行身份验证authconfig-tui
。一切正常,但是当我运行时passwd
,我收到两个密码提示:
[beamin@rhel6-test-server1 ~]$ passwd
Changing password for user beamin.
Changing password for beamin.
(current) UNIX password:
Enter login(LDAP) password:
为什么两者都要求?我可以阻止这种情况发生吗?
以下是 的内容/etc/pam.d/passwd
:
$ cat /etc/pam.d/passwd
#%PAM-1.0
auth include system-auth
account include system-auth
password substack system-auth
-password optional pam_gnome_keyring.so
include()的内容如下/etc/pam.d/system.auth
:
$ cat /etc/pam.d/system-auth
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required pam_env.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
auth sufficient pam_ldap.so use_first_pass
auth required pam_deny.so
account required pam_unix.so broken_shadow
account sufficient pam_succeed_if.so uid < 500 quiet
account [default=bad success=ok user_unknown=ignore] pam_ldap.so
account required pam_permit.so
password requisite pam_cracklib.so try_first_pass retry=3 type=
password sufficient pam_unix.so nullok try_first_pass use_authtok
password sufficient pam_ldap.so use_authtok
password required pam_deny.so
session optional pam_keyinit.so revoke
session required pam_limits.so
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
session optional pam_ldap.so
nsswitch.conf
@Nikhil 询问的内容:
$ egrep 'passwd|shadow' /etc/nsswitch.conf
#passwd: db files nisplus nis
#shadow: db files nisplus nis
passwd: files
shadow: files
答案1
它/etc/nsswitch.conf
告诉系统在密码、组和影子映射中查找用户、组的存储位置。无论是本地文件、nis/yp 还是 ldap,它都是 nsswitch.conf。支持此更改的配置稍后将出现在 pam 配置或 nss 库中。 Linux 上的 pam 确实进行了简化,因为它还支持 tcp_wrappers 以及以各种方式定制 unix 身份验证。
一旦您运行并更改/usr/bin/authconfig
为使用 ldap,
Authconfig 将为您更改 PAM 文件(以及其他内容),特别是文件 /etc/pam.d/system-auth。在配置为使用 LDAP 进行身份验证的 Red Hat 系统上,典型的 system-auth 文件如下所示:
接下来调用“pam_unix”模块,它将完成提示用户输入密码的工作。参数“nullok”和“likeauth”意味着空密码不会被视为锁定帐户,并且模块将返回相同的值(“类似于”“auth”值的值),即使它被称为凭证设置模块。请注意,该模块是“足够的”而不是“必需的”。调用“pam_ldap”模块,并被告知“use_first_pass”,换句话说,使用 pam_unix 模块收集的密码,而不是提示用户输入另一个密码。请注意,该模块被标记为“足够”,并且位于 pam_unix 之后,这意味着如果 pam_unix 成功在本地检查密码,则根本不会调用 pam_ldap。
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required pam_env.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
auth sufficient pam_ldap.so use_first_pass
auth required pam_deny.so
account required pam_unix.so broken_shadow
account sufficient pam_succeed_if.so uid < 500 quiet
account [default=bad success=ok user_unknown=ignore] pam_ldap.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_ldap.so use_authtok
password required pam_deny.so
session optional pam_keyinit.so revoke
session required pam_limits.so
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
session optional pam_ldap.so
/etc/ldap.conf 应该有
pam_lookup_policy yes
pam_password exop
/etc/ssh/sshd_config 应该有并且应该在配置更改后重新启动。
UsePAM yes