2017-02-20 65 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

相關問題