X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=userdir_ldap.py;h=634c514792d5ea0ee0e2d7852b573e47b112c660;hb=997a3ffb125ce1fe9eda5174630975a618e03c0e;hp=bdc4fcb877b91d0d1a108ee1e41ce222904fb0cb;hpb=91d5b5c1125595d131fc089aa25a983441b96b7a;p=mirror%2Fuserdir-ldap.git diff --git a/userdir_ldap.py b/userdir_ldap.py index bdc4fcb..634c514 100644 --- a/userdir_ldap.py +++ b/userdir_ldap.py @@ -1,6 +1,6 @@ # Copyright (c) 1999-2000 Jason Gunthorpe # Copyright (c) 2001-2003 Ryan Murray -# Copyright (c) 2004 Joey Schulze +# Copyright (c) 2004-2005 Joey Schulze # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -48,7 +48,11 @@ userdir_gpg.SetKeyrings(string.split(ConfModule.keyrings,":")); LastNamesPre = {"van": None, "von": None, "le": None, "de": None, "di": None}; # This is a list of common groups on Debian hosts -DebianGroups = {"Debian": 800, "guest": 60000} +DebianGroups = { + "Debian": 800, + "guest": 60000, + "nogroup": 65534 + } # SSH Key splitting. The result is: # (options,size,modulous,exponent,comment) @@ -111,6 +115,29 @@ def getpass(prompt = "Password: "): print; return passwd; +def passwdAccessLDAP(LDAPServer, BaseDn, AdminUser): + """ + Ask for the AdminUser's password and connect to the LDAP server. + Returns the connection handle. + """ + print "Accessing LDAP directory as '" + AdminUser + "'"; + while (1): + Password = getpass(AdminUser + "'s password: "); + + if len(Password) == 0: + sys.exit(0) + + l = ldap.open(LDAPServer); + UserDn = "uid=" + AdminUser + "," + BaseDn; + + # Connect to the ldap server + try: + l.simple_bind_s(UserDn,Password); + except ldap.INVALID_CREDENTIALS: + continue + break + return l + # Split up a name into multiple components. This tries to best guess how # to split up a name def NameSplit(Name):