Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ldapsearch -h hostname -b dc=ernet,dc=in -x "(&(uid=w2lame)(objectClass=posixAccount))" gidnumber
- ldapsearch -h hostname -b dc=ernet,dc=in -x "(&(gidNumber=1234)(objectClass=posixGroup))" cn
- import ldap
- l = ldap.initialize('ldap://ldapserver')
- username = "uid=%s,ou=People,dc=mydotcom,dc=com" % username
- password = "my password"
- try:
- l.protocol_version = ldap.VERSION3
- l.simple_bind_s(username, password)
- valid = True
- except Exception, error:
- print error
- l = ldap.initialize('ldap://ldap.myserver.com:389')
- binddn = "cn=myUserName,ou=GenericID,dc=my,dc=company,dc=com"
- pw = "myPassword"
- basedn = "ou=UserUnits,dc=my,dc=company,dc=com"
- searchFilter = "(&(gidNumber=123456)(objectClass=posixAccount))"
- searchAttribute = ["mail","department"]
- #this will scope the entire subtree under UserUnits
- searchScope = ldap.SCOPE_SUBTREE
- #Bind to the server
- try:
- l.protocol_version = ldap.VERSION3
- l.simple_bind_s(binddn, pw)
- except ldap.INVALID_CREDENTIALS:
- print "Your username or password is incorrect."
- sys.exit(0)
- except ldap.LDAPError, e:
- if type(e.message) == dict and e.message.has_key('desc'):
- print e.message['desc']
- else:
- print e
- sys.exit(0)
- try:
- ldap_result_id = l.search(basedn, searchScope, searchFilter, searchAttribute)
- result_set = []
- while 1:
- result_type, result_data = l.result(ldap_result_id, 0)
- if (result_data == []):
- break
- else:
- ## if you are expecting multiple results you can append them
- ## otherwise you can just wait until the initial result and break out
- if result_type == ldap.RES_SEARCH_ENTRY:
- result_set.append(result_data)
- print result_set
- except ldap.LDAPError, e:
- print e
- l.unbind_s()
- def _ldap_list(ldap_server, base_dn, filter_, limit=0):
- """ Generator: get a list of search results from LDAP asynchronously. """
- ldap_attributes = ["*"] # List of attributes that you want to fetch.
- result_id = ldap_server.search(base_dn, ldap.SCOPE_SUBTREE, filter_, ldap_attributes)
- records = 0
- while 1:
- records += 1
- if limit != 0 and records > limit:
- break
- try:
- result_type, result_data = ldap_server.result(result_id, 0)
- except ldap.NO_SUCH_OBJECT:
- raise DirectoryError("Distinguished name (%s) does not exist." % base_dn)
- if result_type == ldap.RES_SEARCH_ENTRY:
- dn = result_data[0][0]
- data = result_data[0][1]
- yield dn, data
- else:
- break
- from commands import getoutput
- result = getoutput('ldapsearch -h hostname -b dc=ernet,dc=in -x "(&(uid=w2lame)(objectClass=posixAccount))"')
- print result
Add Comment
Please, Sign In to add comment