我对用户身份验证的方式有点问题。
我的 debian 7 使用 /etc/libnss-ldap.conf 连接到 LDAP 服务器
我有一些本地用户和一些 ldap 用户。
在 nsswitch.conf 文件中,我希望用户首先在“文件”中搜索,如果在“文件”中找不到,则仅在“ldap”中搜索。
问题是,对于执行监控的本地用户 (nagios),我的检查出现了一些超时。当我尝试“su nagios”时,它花费了太多时间!
当我尝试“strace su nagios”时,我可以看到对 LDAP 服务器有很多请求,为什么呢?
以下是nsswitch的内容:
passwd: files [SUCCESS=return] ldap
group: files [SUCCESS=return] ldap
shadow: files [SUCCESS=return] ldap
hosts: files dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
网络组:nis
我怀疑 /etc/pam.d 中的文件存在某些问题。以下是一些文件的内容:
普通账户:
account [success=2 new_authtok_reqd=done default=ignore] pam_unix.so broken_shadow
account [success=1 default=ignore] pam_ldap.so
account requisite pam_deny.so
account required pam_permit.so
通用身份验证:
auth [success=2 default=ignore] pam_unix.so nullok_secure
auth [success=1 default=ignore] pam_ldap.so use_first_pass
auth requisite pam_deny.so
auth required pam_permit.so
auth optional pam_mount.so
auth optional pam_smbpass.so migrate
通用密码:
password [success=2 default=ignore] pam_unix.so obscure sha512
password [success=1 user_unknown=ignore default=die] pam_ldap.so use_authtok try_first_pass
password requisite pam_deny.so
password required pam_permit.so
password optional pam_smbpass.so nullok use_authtok use_first_pass
提前致谢
答案1
值得使用strace
和检查输出来确定 su 在进行 LDAP 查找时正在查阅哪个数据库(密码、组、其他)。
听起来它正在搜索 LDAP 目录以查找目标帐户所属的所有组。解决方案是设置nss_base_group
以/etc/libnss-ldap.conf
减少搜索空间。