# this, one is to fetch all the entires and pick the highest, the other
# is to randomly guess uids until one is free. This uses the former.
# Regrettably ldap doesn't have an integer attribute comparision function
-# so we can only cut the search down slightly
+# so we can only cut the search down slightly
def GetFreeID(l):
HighestUID = 1000;
- Attrs = l.search_s(BaseDn,ldap.SCOPE_ONELEVEL,
- "gidnumber>="+str(HighestUID),["gidnumber"]);
+ Attrs = l.search_s(BaseDn,ldap.SCOPE_ONELEVEL,
+ "gidNumber>="+str(HighestUID),["gidNumber"]);
HighestUID = 0;
for I in Attrs:
- ID = int(GetAttr(I,"gidnumber","0"));
- if ID > HighestUID and ID < 60000:
+ ID = int(GetAttr(I,"gidNumber","0"));
+ if ID > HighestUID and ID < 60000:
HighestUID = ID;
return HighestUID + 1;
UserDn = "uid=" + AdminUser + "," + BaseDn;
l.simple_bind_s(UserDn,Password);
-while 1:
- Group = raw_input("Group name?");
+while 1:
+ Group = raw_input("Group name? ");
if Group == "":
sys.exit(1);
if len(Attrs) == 0:
break;
print "Group already exists";
-
-Id = GetFreeID(l);
+
+Id = GetFreeID(l);
print "Create group %s ID = %d"%(Group,Id);
-
-# Submit the add request
+
+# Submit the add request
Dn = "gid=" + Group + "," + BaseDn;
print "Updating LDAP directory..",
sys.stdout.flush();
l.add_s(Dn,[("gid",Group),
- ("gidnumber",str(Id)),
- ("objectclass","top"),
- ("objectclass","posixGroup")]);
-
-
+ ("gidNumber",str(Id)),
+ ("objectClass",("top", "debianGroup"))]);