summaryrefslogtreecommitdiff
path: root/cloudinit/config/cc_users_groups.py
diff options
context:
space:
mode:
authordermotbradley <dermot_bradley@yahoo.com>2020-10-30 20:12:38 +0000
committerGitHub <noreply@github.com>2020-10-30 16:12:38 -0400
commitf8c84aeead77b7e508644d94889ee701f20e8d31 (patch)
treecf1dd65855d28c7d55366a6ab3ce4f7678ebe18e /cloudinit/config/cc_users_groups.py
parent0f8be879073148f1d67094df9ec895a873caa0d7 (diff)
downloadvyos-cloud-init-f8c84aeead77b7e508644d94889ee701f20e8d31.tar.gz
vyos-cloud-init-f8c84aeead77b7e508644d94889ee701f20e8d31.zip
Correct documentation and testcase data for some user-data YAML (#618)
For cc_users_groups the user setting "expiredate" must be quoted in order for the relevant flag and value to be then passed to the useradd command. It its vaiue is not quoted then it is treated as Python type datetime.date and in `cloudinit/distros/__init__.py` the below "is it a string" condition fails and so no "--expiredate" parameter is passed to useradd and therefore it has no effect: ``` if key in useradd_opts and val and isinstance(val, str): useradd_cmd.extend([useradd_opts[key], val]) ``` For cc_users_groups, the user setting "inactive" does not actually disable accounts, the useradd "--inactive" option actually defines the number of days after password expiry that users can still login. So I have changed the docs to show it taking a quoted value of days (which works with the current code) rather than a boolean value. The quotes are necessary, like expiredate above, so that the value is also passed to the useradd command. For cc_power_state_change.py the "delay" setting value needs to have quotes around it as otherwise its leading plus sign will be stripped off.
Diffstat (limited to 'cloudinit/config/cc_users_groups.py')
-rw-r--r--cloudinit/config/cc_users_groups.py9
1 files changed, 5 insertions, 4 deletions
diff --git a/cloudinit/config/cc_users_groups.py b/cloudinit/config/cc_users_groups.py
index d4e923ef..ac4a4410 100644
--- a/cloudinit/config/cc_users_groups.py
+++ b/cloudinit/config/cc_users_groups.py
@@ -26,13 +26,14 @@ entry of the ``users`` list. Each entry in the ``users`` list, other than a
config keys for an entry in ``users`` are as follows:
- ``name``: The user's login name
- - ``expiredate``: Optional. Date on which the user's login will be
+ - ``expiredate``: Optional. Date on which the user's account will be
disabled. Default: none
- ``gecos``: Optional. Comment about the user, usually a comma-separated
string of real name and contact information. Default: none
- ``groups``: Optional. Additional groups to add the user to. Default: none
- ``homedir``: Optional. Home dir for user. Default is ``/home/<username>``
- - ``inactive``: Optional. Mark user inactive. Default: false
+ - ``inactive``: Optional. Number of days after a password expires until
+ the account is permanently disabled. Default: none
- ``lock_passwd``: Optional. Disable password login. Default: true
- ``no_create_home``: Optional. Do not create home directory. Default:
false
@@ -102,11 +103,11 @@ config keys for an entry in ``users`` are as follows:
- name: <some_restricted_user>
sudo: false
- name: <username>
- expiredate: <date>
+ expiredate: '<date>'
gecos: <comment>
groups: <additional groups>
homedir: <home directory>
- inactive: <true/false>
+ inactive: '<number of days>'
lock_passwd: <true/false>
no_create_home: <true/false>
no_log_init: <true/false>