我遇到了一个关于Active Directory和PAM的问题,但这也适用于其他地方。
设置Yubikey over PAM以利用具有VPN连接的双因素身份验证,我需要为联系AD/LDAP服务器的绑定用户设置一个binddn。不幸的是,在binddn中有一个容器,里面有一个空格,PAM不允许这个空格,也不让我转义它。示例:
/etc/pam.d/radiusd
auth required pam_yubico.so id=16 debug ldap_uri=ldap://ad-server.local ldapdn=DC=company,DC=local binddn=CN=binduser,OU=users,OU=other accounts,OU=departments,DC=company,DC=local bindpw=5up3rpa55w0rd user_attr=sAMAccountName yubi_attr=employeeNumber我尝试过OU="other accounts",OU=other\ accounts,OU='other accounts',并将整个绑定放在双引号和单引号中。每次在PAM调试中,我都会得到这样的结果:
[pam_yubico.c:parse_cfg(747)] called.
[pam_yubico.c:parse_cfg(748)] flags 0 argc 9
[pam_yubico.c:parse_cfg(750)] argv[0]=id=16
[pam_yubico.c:parse_cfg(750)] argv[1]=debug
[pam_yubico.c:parse_cfg(750)] argv[2]=ldap_uri=ldap://ad-server.local
[pam_yubico.c:parse_cfg(750)] argv[3]=ldapdn=DC=company,DC=local
[pam_yubico.c:parse_cfg(750)] argv[4]=binddn=CN=binduser,OU=users,OU=other
[pam_yubico.c:parse_cfg(750)] argv[5]=accounts,OU=departments,DC=company,DC=local
[pam_yubico.c:parse_cfg(750)] argv[6]=bindpw=5up3rpa55w0rd
[pam_yubico.c:parse_cfg(750)] argv[7]=user_attr=sAMAccountName
[pam_yubico.c:parse_cfg(750)] argv[8]=yubi_attr=employeeNumber如您所见,在列表中显示空格、引号或转义字符作为binddn的一部分后,它会被截断,如下所示:
[pam_yubico.c:parse_cfg(750)] argv[4]=binddn=CN=binduser,OU=users,OU=other\
[pam_yubico.c:parse_cfg(750)] argv[5]=accounts,OU=departments,DC=company,DC=local我该怎么做才能让PAM识别出这个空格不是用来分隔另一个字段的?
发布于 2013-07-19 03:11:49
从有用的文档中输入man pam.d:(重点补充)
PAM模块参数是一个空格分隔的标记列表,可用于修改给定
的特定行为。这些参数将被记录在每个单独的模块中。请注意,如果您希望在参数中包含空格,则应该用方括号将该参数括起来。
下面的文本包括一些关于如何处理包含方括号的参数的说明,以及一行示例。
https://stackoverflow.com/questions/17731555
复制相似问题