Fix user create with groups

Move the params into array that we add as dynamic parameters to call
This commit is contained in:
Clemens Schwaighofer
2024-10-11 14:39:56 +09:00
parent 74e7e9823f
commit 76f9056069

View File

@@ -234,11 +234,11 @@ while read -r i; do
fi;
ssh_group="ssh${ssh_access_type}";
# sshallow group is always added
sub_group_opt=" -G ${ssh_group}";
sub_group_opt=("${ssh_group}");
# check if "," inside and extract sub groups
if [ -z "${_group##*,*}" ]; then
sub_group=$(echo "${_group}" | cut -d "," -f 2-);
sub_group_opt=" -G ${ssh_group},${sub_group}";
sub_group_opt+=("${sub_group}");
fi;
# POS 5: do we have a password preset
_password=$(echo "${i}" | cut -d ";" -f 5);
@@ -314,11 +314,17 @@ while read -r i; do
echo "-- Skip '${username}:${group}(${sub_group})'";
else
echo "++ Create '${username}:${group}(${sub_group})'";
params=(
"-c" "$(date +"%F")" "-s" "${user_login_shell}"
"-g" "${group}" "-G" "$(IFS=, ; echo "${sub_group_opt[*]}")"
"-d" "${HOME_FOLDER}${username}" "-m"
"${username}"
);
if [ ${TEST} -eq 0 ]; then
# comment is user create time
useradd -c "$(date +"%F")" -s "${user_login_shell}" -g "${group}"${sub_group_opt} -d "${HOME_FOLDER}${username}" -m "${username}";
useradd "${params[@]}";
else
echo "$> useradd -c \"$(date +"%F")\" -s \"${user_login_shell}\" -g \"${group}\"${sub_group_opt} -d \"${HOME_FOLDER}${username}\" -m \"${username}\"";
echo "$> useradd ${params[*]}";
fi;
fi;
# set the auth file