zoukankan      html  css  js  c++  java
  • python3 操作open ldap

    ##pip3.7 install python-ldap==3.3.1


    import ldap
    from ldap import modlist
    ldapconn = ldap.initialize('ldap://192.168.3.99:389',bytes_mode=False) ###python3一定要加上bytes_mode=False 这个参数,否则会报错
    ldapconn.simple_bind('cn=admin,dc=xthktech,dc=cn','xxxxx')

    #验证用户密码
    try:
    ldapconn.simple_bind_s('uid=0000,ou=people,dc=xthktech,dc=cn','xxx')
    print('登录成功')
    except ldap.INVALID_CREDENTIALS as e:
    print('用户名或密码错误')

    #修改用户密码
    try:
    res = ldapconn.passwd_s('uid=test,ou=people,dc=xthktech,dc=cn','xxxx','44')
    print('密码更改成功')
    except ldap.UNWILLING_TO_PERFORM as e:
    print('旧密码验证错误')

    #搜索用户信息
    searchScope = ldap.SCOPE_SUBTREE
    searchFilter = 'uid=0000'
    base_dn = 'ou=people,dc=xthktech,dc=cn'
    res = ldapconn.search_s(base_dn, searchScope, searchFilter, None)
    if len(res) == 0:
    print('not found')
    else:
    print(res)


    #修改用户信息
    old = {'mail':[b'ffff@qq.com'],'sn':[b'test']}
    new = {'mail':[b'loveyou@qq.com'],'sn':[b'fuckyou']}
    ldif =modlist.modifyModlist(old,new)
    ldapconn.modify_s('uid=test,ou=people,dc=xthktech,dc=cn',ldif)
    ldapconn.unbind_s()

    #新增用户
    try:
    attrs = {}
    attrs['objectclass'] = [b'inetOrgPerson']
    attrs['cn'] = [b'zhang san']
    attrs['uid'] = [b'test']
    attrs['sn'] = [b'xx']
    attrs['telephoneNumber'] = [b'10222222222']
    attrs['mail'] = [b'ff@qq.com']
    attrs['userPassword'] = []
    ldif = modlist.addModlist(attrs)
    s=ldapconn.add_s('uid=test,ou=people,dc=xthktech,dc=cn',ldif)
    print(s)
    print('ok')
    except ldap.ALREADY_EXISTS as e:
    print('数据库已经存在该用户')
    try:
    ldapconn.passwd_s('uid=xxxx,ou=people,dc=xthktech,dc=cn',None,'123456')
    except Exception as e:
    print(e)
    ldapconn.unbind_s()

    #删除用户
    try:
    ldapconn.delete_s('uid=888,ou=people,dc=xthktech,dc=cn')
    print('删除用户成功')
    except ldap.NO_SUCH_OBJECT as e:
    print('数据库中没有找到该用户')
  • 相关阅读:
    set--常见成员函数及基本用法
    [Swust OJ 1026]--Egg pain's hzf
    [HDU 1111]--Secret Code
    [Swust OJ 1139]--Coin-row problem
    [Swust OJ 781]--牛喝水
    [Swust OJ 1132]-Coin-collecting by robot
    [Swust OJ 249]--凸包面积
    HTTP 请求头中的 X-Forwarded-For
    HTTP 下载文件中文文件名在 Firefox 下乱码问题
    数据挖掘系列 (1) 关联规则挖掘基本概念与 Aprior 算法
  • 原文地址:https://www.cnblogs.com/dufeixiang/p/14367890.html
Copyright © 2011-2022 走看看