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:
parent
c52b8b502f
commit
81628a796b
@ -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
|
||||
|
||||
|
||||
@ -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() {
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user