git: cd06bf52053d - main - nuageinit: accept lock_passwd for users
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 11 Aug 2026 11:17:25 UTC
The branch main has been updated by bapt:
URL: https://cgit.FreeBSD.org/src/commit/?id=cd06bf52053d463f4a3f6c0b9cb5c9f1d578e439
commit cd06bf52053d463f4a3f6c0b9cb5c9f1d578e439
Author: Baptiste Daroussin <bapt@FreeBSD.org>
AuthorDate: 2026-08-11 09:46:52 +0000
Commit: Baptiste Daroussin <bapt@FreeBSD.org>
CommitDate: 2026-08-11 11:16:57 +0000
nuageinit: accept lock_passwd for users
Alias cloud-init lock_passwd key alongside locked.
---
libexec/nuageinit/nuage.lua | 2 +-
libexec/nuageinit/nuageinit.7 | 5 ++++-
libexec/nuageinit/tests/nuageinit.sh | 30 ++++++++++++++++++++++++++++++
3 files changed, 35 insertions(+), 2 deletions(-)
diff --git a/libexec/nuageinit/nuage.lua b/libexec/nuageinit/nuage.lua
index 3a9ac253fbcb..738c6dabf140 100644
--- a/libexec/nuageinit/nuage.lua
+++ b/libexec/nuageinit/nuage.lua
@@ -388,7 +388,7 @@ local function adduser(pwd)
warnmsg(cmd)
return nil
end
- if pwd.locked then
+ if pwd.lock_passwd or pwd.locked then
cmd = "pw "
if root then
cmd = cmd .. "-R " .. root .. " "
diff --git a/libexec/nuageinit/nuageinit.7 b/libexec/nuageinit/nuageinit.7
index c9c9096eee72..7e6c9154f799 100644
--- a/libexec/nuageinit/nuageinit.7
+++ b/libexec/nuageinit/nuageinit.7
@@ -555,8 +555,11 @@ The encrypted password for the user.
.It Ic plain_text_passwd
The password in plain text for the user.
Ignored if an encrypted password is already provided.
-.It Ic locked
+.It Ic lock_passwd
Boolean to determine if the user account should be locked.
+The legacy
+.Ic locked
+key is also accepted.
.It Ic sudo
A string or an array of strings which should be appended to
.Pa ${LOCALBASE}/etc/sudoers.d/90-nuageinit-users
diff --git a/libexec/nuageinit/tests/nuageinit.sh b/libexec/nuageinit/tests/nuageinit.sh
index a4b0def48a86..4803ddf941ab 100644
--- a/libexec/nuageinit/tests/nuageinit.sh
+++ b/libexec/nuageinit/tests/nuageinit.sh
@@ -181,6 +181,35 @@ EOF
atf_check -o inline:"permit persist foobar as root\ndeny bla as foobar\npermit persist bla as root cmd whoami\n" cat "${PWD}/${localbase}/etc/doas.conf"
}
+nocloud_userdata_cloudconfig_users_lock_passwd_head()
+{
+ atf_set "require.user" root
+}
+nocloud_userdata_cloudconfig_users_lock_passwd_body()
+{
+ mkdir -p media/nuageinit
+ printf "instance-id: iid-local01\n" > "${PWD}"/media/nuageinit/meta-data
+ mkdir -p etc
+ cat > etc/master.passwd << EOF
+root:*:0:0::0:0:Charlie &:/root:/bin/sh
+sys:*:1:0::0:0:Sys:/home/sys:/bin/sh
+EOF
+ pwd_mkdb -d etc "${PWD}"/etc/master.passwd
+ cat > etc/group << EOF
+wheel:*:0:root
+users:*:1:
+EOF
+ cat > media/nuageinit/user-data << 'EOF'
+#cloud-config
+users:
+ - name: lockeduser
+ lock_passwd: true
+EOF
+ atf_check /usr/libexec/nuageinit "${PWD}"/media/nuageinit nocloud
+ atf_check /usr/libexec/nuageinit "${PWD}"/media/nuageinit postnet
+ atf_check -o match:'lockeduser:\*LOCKED\*:' cat "${PWD}"/etc/master.passwd
+}
+
nocloud_network_head()
{
atf_set "require.user" root
@@ -1474,6 +1503,7 @@ atf_init_test_cases()
atf_add_test_case nocloud_userdata_script
atf_add_test_case nocloud_user_data_script
atf_add_test_case nocloud_userdata_cloudconfig_users
+ atf_add_test_case nocloud_userdata_cloudconfig_users_lock_passwd
atf_add_test_case nocloud_network
atf_add_test_case config2
atf_add_test_case config2_pubkeys