2017-02-20 35 views
1

Я использую python2, ниже мой код:Как сбросить общий пароль пользователя ldap в python без старого пароля?

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) 

ДН необходимо сбросить его пароль uid=test,ou=People,dc=node1,dc=com, Я знаю, что с Linux Баш ldappasswd -x -D "cn=admin,dc=node1,dc=com" -w secret -s 555 "uid=test,ou=People,dc=node1,dc=com" я могу сбросить пароль 555, но как с питона-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

могли бы вы подробнее остановиться на этом Abit? в переменной 'mod_attrs'. Не могли бы вы объяснить эти ценности? – iNoob

+0

вы можете увидеть более подробную информацию на [официальном сайте] (https://www.packtpub.com/books/content/python-ldap-applications-extra-ldap-operations-and-ldap-url-library), 'mod_attrs '- это просто тип списка python, который может использовать метод ldap' modify_s', вы также можете увидеть метод изменения [ldap3] (http://ldap3.readthedocs.io/tutorial_operations.html#what-s-next), Ldap3 более могущественно думаю. – Hongzhi