gpt4 book ai didi

linux - 需要帮助形成 python-ldap 查询以列出组成员

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:38:20 31 4
gpt4 key购买 nike

在带有 openldap 的 linux 机器上运行这个脚本

为什么这不列出组内的用户...它只列出组...似乎没人能弄明白...请帮忙...

server = 'ldap://myAddress'

dn = 'uid=bill,cn=users,cn=accounts,dc=example,dc=com'

base = 'cn=coolPeople,cn=accounts,dc=example,dc=com'

pw = "password"
filter = '(objectclass=posixgroup)'
attrs = ['memberuid']

con = ldap.initialize(server)

try:
con.start_tls_s()
con.simple_bind_s(dn,pw)
groups = con.search_s(base, ldap.SCOPE_SUBTREE, filter, attrs)
for a in groups:
print 'Group:', a[0]
print 'Members:', a[-1].get('memberuid')
except ldap.INVALID_CREDENTIALS:
print "Your username or password is incorrect."
sys.exit()
except ldap.LDAPError, e:
if type(e.message) == dict and e.message.has_key('desc'):
print e.message['desc']
else:
print e
sys.exit()
finally:
print "Doing unbind."
con.unbind()

结果:

Group: cn=g1,cn=groups,cn=accounts,dc=example,dc=com
Members: None
Group: cn=g2,cn=groups,cn=accounts,dc=example,dc=com
Members: None
Group: cn=coolPeople,cn=groups,cn=accounts,dc=example,dc=com
Members: None
Doing unbind.

我的组中有很多用户,但似乎无法使用 python-ldap 列出他们

最佳答案

python-ldap 将搜索结果作为字符串键控字典返回。用作字典键的字符串区分大小写(与 LDAP 属性类型名称相反)。

可能 LDAP 服务器返回这个带有驼峰名称 memberUid 的旧属性(参见 RFC 2307)。

因此,此代码更改应该会让您更进一步:

a[-1].get('memberUid')

关于linux - 需要帮助形成 python-ldap 查询以列出组成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45924971/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com