ud-useradd: now does usergroups by default
authorPeter Palfrader <peter@palfrader.org>
Wed, 28 Oct 2015 20:32:25 +0000 (21:32 +0100)
committerPeter Palfrader <peter@palfrader.org>
Wed, 28 Oct 2015 20:32:25 +0000 (21:32 +0100)
debian/changelog
ud-useradd

index 861e509..7678f4b 100644 (file)
@@ -2,8 +2,9 @@ userdir-ldap (0.3.87) UNRELEASED; urgency=medium
 
   * remove dnsZoneEntry from restricted attributes to match config on db.d.o
   * ssh keys: Also accept ed25519 keys.  RSA keys must be at least 2k.
+  * ud-useradd: now does usergroups by default.
 
- -- Peter Palfrader <weasel@debian.org>  Sat, 23 May 2015 10:20:13 +0200
+ -- Peter Palfrader <weasel@debian.org>  Wed, 28 Oct 2015 21:32:02 +0100
 
 userdir-ldap (0.3.86) unstable; urgency=medium
 
index 099ff89..d14edee 100755 (executable)
@@ -28,6 +28,7 @@ from userdir_ldap import *;
 from userdir_gpg import *;
 
 HavePrivateList = getattr(ConfModule, "haveprivatelist", True)
+DefaultGroup = getattr(ConfModule, "defaultgroup", 'users')
 
 # This tries to search for a free UID. There are two possible ways to do
 # this, one is to fetch all the entires and pick the highest, the other
@@ -86,7 +87,7 @@ for (switch, val) in options:
       print "        -u=<user>  Admin user (defaults to current username)"
       print "        -m         Force mail (for updates)"
       print "        -a         Use old keyrings instead (??)"
-      print "        -n         Do not automatically assign UID/GIDs (useful for usergroups or non-default group membership"
+      print "        -n         Do not automatically assign UID/GIDs"
       print "        -g         Add a guest account"
       sys.exit(0)
    elif (switch == '-u'):
@@ -209,14 +210,12 @@ if HavePrivateList and not GuestAccount:
 else:
    privsub = " "
 
-if not gidNumber:
-   if not GuestAccount:
-      gidNumber = DefaultGID
-   else:
-      gidNumber = DebianGroups['guest']
 
 (uidNumber, generatedGID) = GetFreeID(l)
-UserGroup = 0
+if not gidNumber:
+   gidNumber = generatedGID
+
+UserGroup = 1
 if NoAutomaticIDs:
    # UID
    if not Update:
@@ -225,15 +224,20 @@ if NoAutomaticIDs:
          uidNumber = Res;
    
    # GID
-   Res = raw_input("Group ID Number (default group is %s, new usergroup %s) [%s]" % (DefaultGID, generatedGID, gidNumber));
+   Res = raw_input("Group ID Number (new usergroup is %s) [%s]" % (generatedGID, gidNumber));
    if Res != "":
       if Res.isdigit():
          gidNumber = int(Res);
       else:
          gidNumber = Group2GID(l, Res);
    
-   if gidNumber == generatedGID:
-      UserGroup = 1
+   if gidNumber != generatedGID:
+      UserGroup = 0
+
+if GuestAccount:
+  supplementaryGid = 'guest'
+else:
+  supplementaryGid = DefaultGroup
 
 shadowExpire = None
 hostacl = []
@@ -281,6 +285,7 @@ print "------------";
 print "Final information collected:"
 print " %s <%s@%s>:" % (FullName,account,EmailAppend);
 print "   Assigned UID:",uidNumber," GID:", gidNumber;
+print "   supplementary group:",supplementaryGid
 print "   Email forwarded to:",emailaddr
 if HavePrivateList:
    print "   Private Subscription:",privsub;
@@ -325,6 +330,7 @@ if Update == 0:
               ("objectClass", UserObjectClasses),
               ("uidNumber",str(uidNumber)),
               ("gidNumber",str(gidNumber)),
+              ("supplementaryGid",supplementaryGid),
               ("gecos",FullName+",,,,"),
               ("loginShell","/bin/bash"),
               ("keyFingerPrint",Keys[0][1]),