diff --git a/bin/ldapuserdir-ctl b/bin/ldapuserdir-ctl index bf4ed0e..91914fa 100755 --- a/bin/ldapuserdir-ctl +++ b/bin/ldapuserdir-ctl @@ -236,7 +236,7 @@ config = read_cfg(cfgfile) user_dn = config['default_user_dn'] if options.user_dn: - config['user_dn'] = options.user_dn + user_dn = options.user_dn if options.group_ou: config['group_ou'] = options.group_ou if options.user_ou: @@ -262,8 +262,9 @@ if (mode == 'add' or mode == 'del') and len(usernames) == 0: sys.stderr.write("Error: Not enough arguments\n") sys.exit(1) +# this we should actually do with systemuser2dn if ',' not in user_dn: - user_dn = 'CN=' + user_dn + ',' + user_ou + user_dn = 'CN=' + user_dn + ',' + config['user_ou'] if flag_needprivileges and user_dn == config['default_user_dn']: try: @@ -272,10 +273,18 @@ if flag_needprivileges and user_dn == config['default_user_dn']: config['default_user_pw'], user_ou = config['user_ou'], logger = mylogger) - user_dn = l_unpriv.systemuser2dn(os.getlogin()) - if user_dn == '': - sys.stderr.write('Error: Need priviledged user and cannot map your system user "%s" to LDAP DN for binding (you may want to use explicit -D user_dn option?)' % os.getlogin() ) - sys.exit(1) + try: + user_dn = l_unpriv.systemuser2dn(os.getlogin()) + except LdapUserDirError, err: + if str(err) == 'No such user': + sys.stderr.write(''' +Error: Need priviledged user and cannot map your system user "%s" +to LDAP DN for binding (you may want to use the explicit -D user_dn option) +''' % os.getlogin() ) + sys.exit(1) + else: + sys.stderr.write('Uncaught Error: %s' % str(err)) + except ldap.LDAPError, e: sys.stderr.write('LDAP error: %s\n' % str(e)) sys.exit(1)