From: Peter Palfrader Date: Thu, 10 Jan 2008 14:33:50 +0000 (+0100) Subject: A nop with something behind it. X-Git-Tag: userdir-ldap-0.3.16~14 X-Git-Url: https://git.adam-barratt.org.uk/?a=commitdiff_plain;h=2ead5ad6dad3a94f61363bfd1d847a8e595ba681;hp=3a6b6e1ce0ce91574e205b08e9b18d56d0e33683;p=mirror%2Fuserdir-ldap.git A nop with something behind it. Merge in r361 from alioth-common, the shiftUID patch, but also cherry pick r377 which reverts it (because it's incomplete/broken). This is necesary because bzr tracks what you merged so far and would always want to pull in 361 if I just skipped it now. --- diff --git a/debian/changelog b/debian/changelog index 301da9a..4219b3f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -11,6 +11,20 @@ userdir-ldap (0.3.15+xxx) XXunstable; urgency=low * Change the build dependency on python-support to be versioned >= 0.3. * ud-roleadd: Do not try to make role accounts of objectClass inetOrgPerson, that doesn't work. + * ud-fingerserv: implement daemonize() for non-inetd mode [sgran]. + * ud-useradd: support usergroups [HE]. + * ud-host/userdir-ldap.schema: Add 'purpose', 'physicalHost' to + debianServer schema and teach ud-host about [HE]. + * ud-host: cleanup: Replace local copy HBaseDn of the centrally + configured HostBaseDn [HE]. + * Add myself to uploaders. + * ud-generate: Set shadow expiry to 1 for locked accounts [mhy]. + * update doc/slapd-config.txt: labeledURL was removed from the schema but + not the slapd.conf example. Do that now [mhy]. + * ud-generate: Mark that no passwords are exported also in the + generated passwd file, not only in the shadow file (by using a "*" + as password (meaning "no password"), instead of "x" (meaning "do I + look like a passwd from the nineties? Look into /etc/shadow!")) [HE]. [ Mark Hymers ] * ud-userimport, ud-groupadd, ud-roleadd, ud-useradd, userdir_ldap.py: @@ -18,10 +32,10 @@ userdir-ldap (0.3.15+xxx) XXunstable; urgency=low ud-{user,group,role}add and abstract them out into userdir_ldap.py * ud-useradd: Avoid a TypeError exception when constructing the template filename - * Remove use of deprecated functions from the string module + * Remove use of deprecated functions from the string module * ud-arbimport: os.exit -> sys.exit - -- Mark Hymers Wed, 26 Dec 2007 20:54:28 +0000 + -- Peter Palfrader Thu, 10 Jan 2008 15:32:16 +0100 userdir-ldap (0.3.15) unstable; urgency=low diff --git a/debian/control b/debian/control index 869a526..4639a48 100644 --- a/debian/control +++ b/debian/control @@ -4,7 +4,7 @@ Priority: optional Maintainer: Debian Administration team Build-Depends: debhelper (>= 5), python-support (>= 0.3) Standards-Version: 3.5.8.0 -Uploaders: Ryan Murray +Uploaders: Ryan Murray , Peter Palfrader Package: userdir-ldap Architecture: all diff --git a/ud-fingerserv b/ud-fingerserv index 42b8239..1c977d8 100755 --- a/ud-fingerserv +++ b/ud-fingerserv @@ -61,9 +61,12 @@ if (!$use_inetd) { chdir '/' or die "Can't chdir to /: $!"; open STDIN, '/dev/null' or die "Can't read /dev/null: $!"; open STDOUT, '>/dev/null' or die "Can't write to /dev/null: $!"; - defined(my $pid = fork) or die "Can't fork: $!"; + my $pid; + defined($pid = fork) or die "Can't fork: $!"; exit if $pid; setsid or die "Can't start a new session: $!"; + defined($pid = fork) or die "Can't fork: $!"; + exit if $pid; open STDERR, '>&STDOUT' or die "Can't dup stdout: $!"; } diff --git a/ud-generate b/ud-generate index feec2b1..8537f0c 100755 --- a/ud-generate +++ b/ud-generate @@ -88,7 +88,7 @@ def Done(File,F,Fdb): os.rename(File + ".tdb.tmp",File+".tdb"); # Generate the password list -def GenPasswd(l,File,HomePrefix,PwdMarker,UidShift): +def GenPasswd(l,File,HomePrefix,PwdMarker): F = None; try: F = open(File + ".tdb.tmp","w"); @@ -116,7 +116,7 @@ def GenPasswd(l,File,HomePrefix,PwdMarker,UidShift): Line = Sanitize(Line) + "\n"; F.write("0%u %s" % (I,Line)); F.write(".%s %s" % (GetAttr(x,"uid"),Line)); - F.write("=%s %s" % ((int(GetAttr(x,"uidNumber"))+UidShift),Line)); + F.write("=%s %s" % (GetAttr(x,"uidNumber"),Line)); I = I + 1; # Oops, something unspeakable happened. @@ -209,7 +209,7 @@ def GenSSHShadow(l,File): Done(File,F,None); # Generate the group list -def GenGroup(l,File,UidShift): +def GenGroup(l,File): F = None; try: F = open(File + ".tdb.tmp","w"); @@ -242,10 +242,7 @@ def GenGroup(l,File,UidShift): for x in GroupMap.keys(): if GroupIDMap.has_key(x) == 0: continue; - NewGid = int(GroupIDMap[x]); - if NewGid >= 500: - NewGid = NewGid + UidShift - Line = "%s:x:%u:" % (x,NewGid) + Line = "%s:x:%u:" % (x,GroupIDMap[x]); Comma = ''; for I in GroupMap[x]: Line = Line + ("%s%s" % (Comma,I)); @@ -253,7 +250,7 @@ def GenGroup(l,File,UidShift): Line = Sanitize(Line) + "\n"; F.write("0%u %s" % (J,Line)); F.write(".%s %s" % (x,Line)); - F.write("=%u %s" % (NewGid,Line)); + F.write("=%u %s" % (GroupIDMap[x],Line)); J = J + 1; # Oops, something unspeakable happened. @@ -856,14 +853,12 @@ while(1): DoLink(GlobalDir,OutDir,"disabled-accounts") sys.stdout.flush(); - UidShift = 0 - if ExtraList.has_key("[UIDSHIFT]"): UidShift=1000 if ExtraList.has_key("[NOPASSWD]"): - GenPasswd(l,OutDir+"passwd",Split[1], "*", UidShift); + GenPasswd(l,OutDir+"passwd",Split[1], "*"); else: - GenPasswd(l,OutDir+"passwd",Split[1], "x", UidShift); + GenPasswd(l,OutDir+"passwd",Split[1], "x"); sys.stdout.flush(); - GenGroup(l,OutDir+"group", UidShift); + GenGroup(l,OutDir+"group"); if ExtraList.has_key("[UNTRUSTED]"): continue; if not ExtraList.has_key("[NOPASSWD]"): diff --git a/ud-userimport b/ud-userimport index 3e926ec..4e044c7 100755 --- a/ud-userimport +++ b/ud-userimport @@ -83,8 +83,10 @@ def DoPasswd(l,Passwd): Split = re.split("[:\n]",Line); (Split[4],cn,mn,sn) = ParseGecos(Split[4]); - Split[2] = int(Split[2]) - Split[3] = int(Split[3]) + # This just tests whether these are integers and throws an + # exception if not + int(Split[2]) + int(Split[3]) Rec = [("uid",Split[0]), ("uidNumber",Split[2]), ("gidNumber",Split[3]), @@ -106,8 +108,8 @@ def DoPasswd(l,Passwd): if (DoAdd == 1): try: - AddRec = Rec - Rec.append(("objectClass", UserObjectClasses)) + AddRec = Rec[:] + AddRec.append(("objectClass", UserObjectClasses)) l.add_s(Dn,AddRec) DoModify = False @@ -143,7 +145,7 @@ def DoShadow(l,Shadow): continue; for x in range(2,8): - Split[x] = int(Split[x]) + int(Split[x]) Rec = [(ldap.MOD_REPLACE,"shadowLastChange",Split[2]), (ldap.MOD_REPLACE,"shadowMin",Split[3]), @@ -184,7 +186,7 @@ def DoGroup(l,Group): # Split up the group information Split = re.split("[:\n]",Line); Members = re.split("[, ]*",Split[3]); - Split[2] = int(Split[2]) + int(Split[2]) # Iterate over the membership list and add the membership information # To the directory