1
0
mirror of https://gitlab.alpinelinux.org/alpine/cloud/tiny-cloud.git synced 2025-12-14 19:02:45 +03:00

Allow override default user's homedir, shell, group and gecos

This commit is contained in:
Natanael Copa 2024-12-30 18:51:46 +00:00 committed by Jake Buchholz Göktürk
parent c52b8b502f
commit 81628a796b
3 changed files with 80 additions and 1 deletions

View File

@ -164,7 +164,12 @@ init__create_default_user() {
fi
$MOCK addgroup "$user"
$MOCK adduser -h "/home/$user" -s /bin/sh -G "$user" -D "$user"
$MOCK adduser -D \
-h "${CLOUD_USER_HOMEDIR:-/home/$user}" \
-s "${CLOUD_USER_SHELL:-/bin/sh}" \
-G "${CLOUD_USER_PRIMARY_GROUP:-$user}" \
${CLOUD_USER_GECOS:+-g "$CLOUD_USER_GECOS"} \
"$user"
$MOCK addgroup "$user" wheel
echo "$user:*" | $MOCK chpasswd -e

View File

@ -30,10 +30,24 @@ init__userdata_user() {
local default_user="$(get_userdata users/1)"
if [ "$default_user" != "default" ]; then
CLOUD_USER="$(get_userdata users/1/name)"
CLOUD_USER_HOMEDIR="$(get_userdata users/1/homedir)"
CLOUD_USER_SHELL="$(get_userdata users/1/shell)"
CLOUD_USER_PRIMARY_GROUP="$(get_userdata users/1/primary_group)"
CLOUD_USER_GECOS="$(get_userdata users/1/gecos)"
return 0
fi
fi
local homedir="$(get_userdata user/homedir)"
local shell="$(get_userdata user/shell)"
local primary_group="$(get_userdata user/primary_group)"
local gecos="$(get_userdata user/gecos)"
CLOUD_USER="${name:-$CLOUD_USER}"
CLOUD_USER_HOMEDIR="${homedir:-$CLOUD_USER_HOMEDIR}"
CLOUD_USER_SHELL="${shell:-$CLOUD_USER_SHELL}"
CLOUD_USER_PRIMARY_GROUP="${primary_group:-$CLOUD_USER_PRIMARY_GROUP}"
CLOUD_USER_GECOS="${gecos:-$CLOUD_USER_GECOS}"
}
set_ssh_authorized_keys_for() {

View File

@ -13,6 +13,10 @@ init_tests \
set_network_config_network_interfaces \
set_network_config_auto \
userdata_user_name \
userdata_user_homedir \
userdata_user_gecos \
userdata_user_shell \
userdata_user_primary_group \
userdata_user_missing_name \
userdata_create_default_user \
userdata_no_default_user \
@ -126,6 +130,62 @@ userdata_user_name_body() {
tiny-cloud main
}
userdata_user_homedir_body() {
fake_userdata_nocloud <<-EOF
#alpine-config
user:
name: joeuser
homedir: /var/lib/joe
EOF
atf_check -e ignore -o ignore tiny-cloud early
atf_check \
-e match:"create_default_user: done" \
-o match:"adduser.*-h /var/lib/joe" \
tiny-cloud main
}
userdata_user_gecos_body() {
fake_userdata_nocloud <<-EOF
#alpine-config
user:
name: joeuser
gecos: Joe User
EOF
atf_check -e ignore -o ignore tiny-cloud early
atf_check \
-e match:"create_default_user: done" \
-o match:"adduser.*-g Joe User" \
tiny-cloud main
}
userdata_user_shell_body() {
fake_userdata_nocloud <<-EOF
#alpine-config
user:
name: joeuser
shell: /bin/bash
EOF
atf_check -e ignore -o ignore tiny-cloud early
atf_check \
-e match:"create_default_user: done" \
-o match:"adduser.*-s /bin/bash" \
tiny-cloud main
}
userdata_user_primary_group_body() {
fake_userdata_nocloud <<-EOF
#alpine-config
user:
name: joeuser
primary_group: baz
EOF
atf_check -e ignore -o ignore tiny-cloud early
atf_check \
-e match:"create_default_user: done" \
-o match:"adduser.*-G baz" \
tiny-cloud main
}
userdata_user_missing_name_body() {
fake_userdata_nocloud <<-EOF
#alpine-config