From db0949115e2a549d3e8f5a71852422b853327293 Mon Sep 17 00:00:00 2001 From: Peter Palfrader Date: Wed, 28 Oct 2015 21:32:25 +0100 Subject: [PATCH] ud-useradd: now does usergroups by default --- debian/changelog | 3 ++- ud-useradd | 26 ++++++++++++++++---------- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/debian/changelog b/debian/changelog index 861e509..7678f4b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -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 Sat, 23 May 2015 10:20:13 +0200 + -- Peter Palfrader Wed, 28 Oct 2015 21:32:02 +0100 userdir-ldap (0.3.86) unstable; urgency=medium diff --git a/ud-useradd b/ud-useradd index 099ff89..d14edee 100755 --- a/ud-useradd +++ b/ud-useradd @@ -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= 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]), -- 2.20.1