s4-s3-upgrade: Check for common user/group names before provisioning
authorAmitay Isaacs <amitay@gmail.com>
Mon, 12 Sep 2011 02:14:00 +0000 (12:14 +1000)
committerAndrew Bartlett <abartlet@samba.org>
Mon, 12 Sep 2011 10:42:17 +0000 (20:42 +1000)
Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
source4/scripting/python/samba/upgrade.py

index 41c93ea151fb632e79efcbd9b37f37fa0a1a2b7c..ae9fdab4cb702d751eb2a0b59b810e88235e9071 100644 (file)
@@ -592,6 +592,16 @@ Please fix this account before attempting to upgrade again
 
     logger.info("Next rid = %d", next_rid)
 
+    # Check for same username/groupname
+    group_names = set(map(lambda g: g.nt_name, grouplist))
+    user_names = set(map(lambda u: u['account_name'], userlist))
+    common_names = group_names.intersection(user_names)
+    if common_names:
+        logger.error("Following names are both user names and group names:")
+        for name in common_names:
+            logger.error("   %s" % name)
+        raise ProvisioningError("Please remove common user/group names before upgrade.")
+
     # Do full provision
     result = provision(logger, session_info, None,
                        targetdir=targetdir, realm=realm, domain=domainname,