2017-02-20 38 views
1

我使用python2,下面是我的代码:如何在不使用旧密码的情况下重置python中的常见ldap用户密码?

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。

回答

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) 
+0

可能你对这个升技解释一下?在'mod_attrs'变量中。你能解释这些价值吗? – iNoob

+0

你可以在[官方网站](https://www.packtpub.com/books/content/python-ldap-applications-extra-ldap-operations-and-ldap-url-library)上看到更多细节,mod_attrs '只是ldap方法'modify_s'可以使用的python列表类型,您还可以看到[ldap3修改方法](http://ldap3.readthedocs.io/tutorial_operations.html#what-s-next),Ldap3我认为更有力。 – Hongzhi

相关问题