linux 查询ldap用户密码,linux – 如何使用PAM检查某些用户的LDAP密码,但始终使用本地文件中的UID / GID?...

感谢您更新您的问题,该建议通常采取错误的方式.

您理解他们的要求:

>所有用户的UID / GID查找必须针对本地文件运行.

>特定用户的身份验证必须首先尝试LDAP(Active Directory).

简短的版本是肯定的,这是可能的,但它需要实际了解这些子系统如何工作而不依赖于在线HOWTO.我将把你作为入门书的现有答案推荐给你. https://serverfault.com/a/538503/152073

NSS是执行UID和GID查找的系统.如果不修改/etc/nsswitch.conf并告诉它使用ldap或sssd,则系统调用将依赖于本地文件.用于LDAP的大多数PAM插件与LDAP共享配置文件和NSS插件,但如果NSS没有使用NSS插件则无关紧要.

您只对特定用户执行此操作的要求比较棘手.配置PAM尝试pam_ldap.so(或pam_krb5.so,或者pam_winbind.so …取决于你使用的)取决于auth,在auth所需的pam_unix.so之前.足够的意思是“足够好,停在这里”.必需的意思是“如果我们到目前为止这个测试失败了,那么认证失败”.

这是最简单的方法,但存在问题:

>如果有人经常使用与其AD密码不匹配的本地密码进行身份验证(即,他们没有像其他系统那样成功地对AD进行身份验证),则会导致AD密码锁定.

>如果您不希望某些用户考虑使用有效的AD密码,这也不适用于您的要求.

如果您确实真的只需要针对特定​​用户列表对LDAP进行身份验证,请告诉我们.这绝对是可能的,但它会增加PAM配置的复杂性,而且我已经向你提供了相当多的信息.

根据需要扩展答案:

我建议严格控制谁对AD进行身份验证是使用pam_access.so.为此,AD和Unix PAM模块必须相邻,并且按此顺序.将以下行放在它们前面:

auth [success=ignore default=1] pam_access.so accessfile=/etc/security/somefile.conf noaudit

success = ignore表示“如果此测试成功,则忽略此行并继续正常”. default = 1表示“在所有其他情况下,跳过下一行”.您需要创建somefile.conf并定义允许使用AD身份验证的用户列表.有关更多详细信息,请查看access.conf的联机帮助页.您将定义此文件中所有用户的列表,或创建本地组并测试成员资格.在所有情况下,第三个字段应为ALL. (即:无论如何:全部)

您的可选要求(使用AD安全组控制它)可以通过以下两种方式之一实现:

>如果您的PAM模块允许您指定将导致基于组成员身份跳过身份验证检查的LDAP查询,请使用该查询.如果密码成功,这与通过帐户拒绝用户不同!

>妥协GID查找命中活动目录.这意味着您将在/etc/nsswitch.conf中的ldap指向passwd查找,但是您可以将ldap行添加到group.必须配置安全组对象,以便通过应用适当的objectClass(即posixGroup)或配置NSS插件将其识别为一个来识别它为Unix组.除非你有强大的LDAP背景,否则你可能只想传递这个.

成功将事物配置到getent组显示AD组的位置后,您可以根据该组的成员身份修改访问文件以使其成功.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值