mirror of
https://gitlab.alpinelinux.org/alpine/cloud/tiny-cloud.git
synced 2025-12-15 11:22:43 +03:00
Compare commits
6 Commits
8a9f895365
...
2ee4edc6e5
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2ee4edc6e5 | ||
|
|
36eef1bb14 | ||
|
|
e243abc2ab | ||
|
|
f84f2c090c | ||
|
|
5aece92a41 | ||
| 3e886c87fb |
@ -75,6 +75,7 @@ set_ssh_authorized_keys_for() {
|
|||||||
touch "$keys_file"
|
touch "$keys_file"
|
||||||
chmod 600 "$keys_file"
|
chmod 600 "$keys_file"
|
||||||
$MOCK chown -R "$user:$group" "$ssh_dir"
|
$MOCK chown -R "$user:$group" "$ssh_dir"
|
||||||
|
local i
|
||||||
for i in $sshkeys; do
|
for i in $sshkeys; do
|
||||||
local key="$(get_userdata $userdata_path/$i)"
|
local key="$(get_userdata $userdata_path/$i)"
|
||||||
if [ -n "$key" ]; then
|
if [ -n "$key" ]; then
|
||||||
@ -142,7 +143,7 @@ write_file() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
init__userdata_write_files() {
|
init__userdata_write_files() {
|
||||||
local files="$(get_userdata write_files)"
|
local i files="$(get_userdata write_files)"
|
||||||
|
|
||||||
for i in $files; do
|
for i in $files; do
|
||||||
local path="$(get_userdata write_files/$i/path)"
|
local path="$(get_userdata write_files/$i/path)"
|
||||||
@ -204,7 +205,7 @@ init__userdata_package_upgrade() {
|
|||||||
|
|
||||||
init__userdata_packages() {
|
init__userdata_packages() {
|
||||||
local packages="$(get_userdata packages)"
|
local packages="$(get_userdata packages)"
|
||||||
local pkgs=
|
local i pkgs=
|
||||||
for i in $packages; do
|
for i in $packages; do
|
||||||
pkgs="$pkgs $(get_userdata packages/$i)"
|
pkgs="$pkgs $(get_userdata packages/$i)"
|
||||||
done
|
done
|
||||||
@ -214,7 +215,7 @@ init__userdata_packages() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
init__userdata_runcmd() {
|
init__userdata_runcmd() {
|
||||||
local runcmds="$(get_userdata runcmd)"
|
local i runcmds="$(get_userdata runcmd)"
|
||||||
for i in $runcmds; do
|
for i in $runcmds; do
|
||||||
local cmd="$(get_userdata runcmd/$i)"
|
local cmd="$(get_userdata runcmd/$i)"
|
||||||
sh -c "$cmd"
|
sh -c "$cmd"
|
||||||
@ -222,7 +223,7 @@ init__userdata_runcmd() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
init__userdata_groups() {
|
init__userdata_groups() {
|
||||||
local groups="$(get_userdata groups)"
|
local i groups="$(get_userdata groups)"
|
||||||
for i in $groups; do
|
for i in $groups; do
|
||||||
local group="$(get_userdata groups/$i)"
|
local group="$(get_userdata groups/$i)"
|
||||||
$MOCK addgroup $group
|
$MOCK addgroup $group
|
||||||
@ -241,9 +242,9 @@ in_list() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
init__userdata_users() {
|
init__userdata_users() {
|
||||||
local users="$(get_userdata users)"
|
local i users="$(get_userdata users)"
|
||||||
for i in $users; do
|
for i in $users; do
|
||||||
local name="" gecos="" homedir="" shell="" primary_group="" groups=""
|
local name="" gecos="" homedir="" shell="" primary_group="" groups="" passwd="" hashed_passwd=""
|
||||||
local system=false no_create_home=false lock_passwd=true
|
local system=false no_create_home=false lock_passwd=true
|
||||||
local keys="$(get_userdata users/$i)"
|
local keys="$(get_userdata users/$i)"
|
||||||
if [ "$i" = 1 ] && [ "$keys" = "default" ]; then
|
if [ "$i" = 1 ] && [ "$keys" = "default" ]; then
|
||||||
@ -272,6 +273,10 @@ init__userdata_users() {
|
|||||||
if in_list no_create_home $keys; then
|
if in_list no_create_home $keys; then
|
||||||
no_create_home="$(get_userdata users/$i/no_create_home)"
|
no_create_home="$(get_userdata users/$i/no_create_home)"
|
||||||
fi
|
fi
|
||||||
|
if in_list passwd $keys; then
|
||||||
|
passwd="$(get_userdata users/$i/passwd)"
|
||||||
|
echo "${user}:${passwd}" | $MOCK chpasswd -e
|
||||||
|
fi
|
||||||
|
|
||||||
if getent passwd "$user" >/dev/null; then
|
if getent passwd "$user" >/dev/null; then
|
||||||
log -i -t "$phase" info "$ACTION: user $user already exists"
|
log -i -t "$phase" info "$ACTION: user $user already exists"
|
||||||
@ -285,12 +290,17 @@ init__userdata_users() {
|
|||||||
$MOCK adduser -D ${gecos:+-g "$gecos"} ${homedir:+-h "$homedir"} ${shell:+-s "$shell"} ${primary_group:+-G "$primary_group"} ${system:+-S} ${no_create_home:+-H} "$name"
|
$MOCK adduser -D ${gecos:+-g "$gecos"} ${homedir:+-h "$homedir"} ${shell:+-s "$shell"} ${primary_group:+-G "$primary_group"} ${system:+-S} ${no_create_home:+-H} "$name"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if in_list hashed_passwd $keys; then
|
||||||
|
hashed_passwd="$(get_userdata users/$i/hashed_passwd)"
|
||||||
|
echo "${name}:${hashed_passwd}" | $MOCK chpasswd -e
|
||||||
|
fi
|
||||||
|
|
||||||
if in_list lock_passwd $keys; then
|
if in_list lock_passwd $keys; then
|
||||||
lock_passwd="$(get_userdata users/$i/lock_passwd)"
|
lock_passwd="$(get_userdata users/$i/lock_passwd)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$lock_passwd" != "false" ]; then
|
if [ "$lock_passwd" != "false" ] && [ -z "$hashed_passwd" ]; then
|
||||||
echo "$name:*" | $MOCK chpasswd -e
|
echo "${name}:*" | $MOCK chpasswd -e
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if in_list ssh_authorized_keys $keys; then
|
if in_list ssh_authorized_keys $keys; then
|
||||||
|
|||||||
@ -30,6 +30,8 @@ init_tests \
|
|||||||
userdata_users_system \
|
userdata_users_system \
|
||||||
userdata_users_no_create_home \
|
userdata_users_no_create_home \
|
||||||
userdata_users_groups \
|
userdata_users_groups \
|
||||||
|
userdata_users_passwd \
|
||||||
|
userdata_users_hashed_passwd \
|
||||||
userdata_users_lock_passwd \
|
userdata_users_lock_passwd \
|
||||||
userdata_users_doas \
|
userdata_users_doas \
|
||||||
userdata_users_ssh_authorized_keys \
|
userdata_users_ssh_authorized_keys \
|
||||||
@ -384,6 +386,38 @@ userdata_users_groups_body() {
|
|||||||
tiny-cloud main
|
tiny-cloud main
|
||||||
}
|
}
|
||||||
|
|
||||||
|
userdata_users_passwd_body() {
|
||||||
|
# first specified user will replace default user
|
||||||
|
fake_userdata_nocloud <<-EOF
|
||||||
|
#alpine-config
|
||||||
|
users:
|
||||||
|
- none
|
||||||
|
- name: foo
|
||||||
|
passwd: $6$foosalt$QuhZ.r54aqCAn7mTnU4jBh9LPyuVQCa8.H0dZWCMYHVaNzsPX/heqKqI3EtnB6j.YLuaENmnlEHTiwu.iVVcG1
|
||||||
|
EOF
|
||||||
|
atf_check -e ignore -o ignore tiny-cloud early
|
||||||
|
atf_check \
|
||||||
|
-e match:"userdata_users: done" \
|
||||||
|
-o match:"chpasswd -e" \
|
||||||
|
tiny-cloud main
|
||||||
|
}
|
||||||
|
|
||||||
|
userdata_users_hashed_passwd_body() {
|
||||||
|
# first specified user will replace default user
|
||||||
|
fake_userdata_nocloud <<-EOF
|
||||||
|
#alpine-config
|
||||||
|
users:
|
||||||
|
- none
|
||||||
|
- name: foo
|
||||||
|
hashed_passwd: $6$foosalt$QuhZ.r54aqCAn7mTnU4jBh9LPyuVQCa8.H0dZWCMYHVaNzsPX/heqKqI3EtnB6j.YLuaENmnlEHTiwu.iVVcG1
|
||||||
|
EOF
|
||||||
|
atf_check -e ignore -o ignore tiny-cloud early
|
||||||
|
atf_check \
|
||||||
|
-e match:"userdata_users: done" \
|
||||||
|
-o match:"chpasswd -e" \
|
||||||
|
tiny-cloud main
|
||||||
|
}
|
||||||
|
|
||||||
userdata_users_lock_passwd_body() {
|
userdata_users_lock_passwd_body() {
|
||||||
# first specified user will replace default user
|
# first specified user will replace default user
|
||||||
fake_userdata_nocloud <<-EOF
|
fake_userdata_nocloud <<-EOF
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user