【问题标题】:how to reset a common ldap user's password in python without old password?如何在没有旧密码的情况下在python中重置普通ldap用户的密码?
【发布时间】:2017-02-23 16:42:07
【问题描述】:

我用的是python2,下面是我的代码:

import ldap
LDAP_HOST = 'ldap://192.168.3.3'
USER = 'cn=admin,dc=node1,dc=com' #admin DN
PASSWORD = 'secret' #admin passwd
BASE_DN = 'dc=node1,dc=com'
conn = ldap.initialize(LDAP_HOST)
conn.simple_bind_s(USER, PASSWORD)

需要重置密码的DN是uid=test,ou=People,dc=node1,dc=com, 我知道使用 linux bash ldappasswd -x -D "cn=admin,dc=node1,dc=com" -w secret -s 555 "uid=test,ou=People,dc=node1,dc=com" 我可以将密码重置为 555,但是如何使用 python-ldap。

【问题讨论】:

    标签: python ldap


    【解决方案1】:

    我想出了一个简单的方法来解决这个问题,下面是代码:

    # login as admin user
    import ldap
    from ldap import modlist
    LDAP_HOST = 'ldap://192.168.3.3'
    USER = 'cn=admin,dc=node1,dc=com' #admin DN
    PASSWORD = 'secret' #admin passwd
    BASE_DN = 'dc=node1,dc=com'
    conn = ldap.initialize(LDAP_HOST)
    conn.simple_bind_s(USER, PASSWORD)
    
    # change the password
    tdn="uid=test,ou=People,dc=node1,dc=com")
    mod_attrs = [(ldap.MOD_REPLACE,"userPassword","444"),]
    conn.modify_s(tdn,mod_attrs)
    

    【讨论】:

    • 您能详细说明一下吗?在mod_attrs 变量中。你能解释一下这些价值观吗?
    • 你可以在official site看到更多细节,mod_attrs只是ldap方法modify_s可以使用的python列表类型,你也可以看到ldap3 modify method,ldap3更多我认为很有力。
    猜你喜欢
    • 2023-01-09
    • 1970-01-01
    • 1970-01-01
    • 2020-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-12
    相关资源
    最近更新 更多