From c4576e56dbf84c0a10a71cb7fd609c2375b3d290 Mon Sep 17 00:00:00 2001
From: Wei Xu <weixugc@google.com>
Date: Tue, 21 Jan 2020 18:27:35 -0800
Subject: [PATCH] Make UID generation more stable/predictable.

This patch modifies users-groups with the goal of making it behave better in
configuration where /etc/passwd is stateless. Specifically it:

 - adds 'uid' options so that UIDs can be set from cloud-config, that is
   now recommended and a warning is generated if some users do not have that
   option;
 - reserves range [2000, 5000) for UIDs created by cloud-init;
 - makes sure that users are created in the alphabetical order to provide
   more predictable and consistent UIDs;
 - adds a requirement that if homedir already exists the UID assigned to user
   must be the same as the owner of that directory, this is to protect from
   assigning incorrect UIDs after config changes.

Original Author: Andrey Ulanov <andreyu@google.com>
Original Date:   Thu Feb 25 18:41:48 2016 -0800
---
---
 cloudinit/config/cc_users_groups.py | 31 +++++++++++++++++++++++++++++
 cloudinit/distros/__init__.py       |  5 +++--
 2 files changed, 34 insertions(+), 2 deletions(-)

diff --git a/cloudinit/config/cc_users_groups.py b/cloudinit/config/cc_users_groups.py
index ac4a4410..66e33205 100644
--- a/cloudinit/config/cc_users_groups.py
+++ b/cloudinit/config/cc_users_groups.py
@@ -135,6 +135,9 @@ from cloudinit import log as logging
 
 from cloudinit.settings import PER_INSTANCE
 
+import os
+import pwd
+
 LOG = logging.getLogger(__name__)
 
 frequency = PER_INSTANCE
@@ -146,6 +149,8 @@ def handle(name, cfg, cloud, _log, _args):
     cloud_keys = cloud.get_public_ssh_keys() or []
     for (name, members) in groups.items():
         cloud.distro.create_group(name, members)
+
+    # First create all users that have UID explicitly specified in cloud-config.
     for (user, config) in users.items():
         ssh_redirect_user = config.pop("ssh_redirect_user", False)
         if ssh_redirect_user:
@@ -169,6 +174,32 @@ def handle(name, cfg, cloud, _log, _args):
             else:
                 config['ssh_redirect_user'] = default_user
                 config['cloud_public_ssh_keys'] = cloud_keys
+        if 'uid' in config:
+            config['uid'] = str(config['uid'])
+            cloud.distro.create_user(user, **config)
+
+    # dict is an unordered container. To make UIDs assigned to users more
+    # predictable we sort them by the name and create accounts in that order.
+    nouids = []
+    for user in sorted(users):
+        config = users[user]
+        if 'uid' in config:
+            continue
+        nouids.append(user)
+
         cloud.distro.create_user(user, **config)
 
+        pw = pwd.getpwnam(user)
+        homedir = config['homedir'] if 'homedir' in config else ('/home/%s' % user)
+        if os.path.isdir(homedir):
+            stats = os.stat(homedir)
+            if stats.st_uid != pw.pw_uid:
+                LOG.error('UID %d was assigned to user %s, but homedir %s '
+                          'is owned by %d', pw.pw_uid, user, homedir, stats.st_uid)
+                raise
+
+    if nouids:
+        LOG.warn('No explicit UID specified for the following users: %s.'
+                 ' UID may change after reboot.', ', '.join(nouids))
+
 # vi: ts=4 expandtab
diff --git a/cloudinit/distros/__init__.py b/cloudinit/distros/__init__.py
index cf6aad14..f1d3653d 100755
--- a/cloudinit/distros/__init__.py
+++ b/cloudinit/distros/__init__.py
@@ -442,8 +442,9 @@ class Distro(persistence.CloudInitPickleMixin, metaclass=abc.ABCMeta):
         else:
             create_groups = True
 
-        useradd_cmd = ['useradd', name]
-        log_useradd_cmd = ['useradd', name]
+        useradd_cmd = ['useradd', name,
+                       '-K', 'UID_MIN=2000', '-K', 'UID_MAX=4999', ]
+        log_useradd_cmd = useradd_cmd[:]
         if util.system_is_snappy():
             useradd_cmd.append('--extrausers')
             log_useradd_cmd.append('--extrausers')
-- 
2.34.1.575.g55b058a8bb-goog


