installer.sh: fix USER*_DONE, validate user account
also make the description of the USERNAME (comment/GECOS) more informative from dateiexplorer: The issue with the various USER_DONE variables is that they are reset if the installation process was aborted and then restarted. The configuration were still there but the user wasn't created because of the DONE variables. Instead of checking the DONE variables now the actual user settings are checked for existence. Co-authored-by: dateiexplorer <justus.roederer@dateiexplorer.de>
This commit is contained in:
parent
018343cd10
commit
b0e010c87c
@ -36,6 +36,7 @@ USERLOGIN_DONE=
|
||||
USERPASSWORD_DONE=
|
||||
USERNAME_DONE=
|
||||
USERGROUPS_DONE=
|
||||
USERACCOUNT_DONE=
|
||||
BOOTLOADER_DONE=
|
||||
PARTITIONS_DONE=
|
||||
NETWORK_DONE=
|
||||
@ -694,7 +695,7 @@ menu_useraccount() {
|
||||
while true; do
|
||||
_preset=$(get_option USERNAME)
|
||||
[ -z "$_preset" ] && _preset="Void User"
|
||||
DIALOG --inputbox "Enter a user name for login '$(get_option USERLOGIN)' :" \
|
||||
DIALOG --inputbox "Enter a display name for login '$(get_option USERLOGIN)' :" \
|
||||
${INPUTSIZE} "$_preset"
|
||||
if [ $? -eq 0 ]; then
|
||||
set_option USERNAME "$(cat $ANSWER)"
|
||||
@ -767,10 +768,7 @@ menu_useraccount() {
|
||||
}
|
||||
|
||||
set_useraccount() {
|
||||
[ -z "$USERLOGIN_DONE" ] && return
|
||||
[ -z "$USERPASSWORD_DONE" ] && return
|
||||
[ -z "$USERNAME_DONE" ] && return
|
||||
[ -z "$USERGROUPS_DONE" ] && return
|
||||
[ -z "$USERACCOUNT_DONE" ] && return
|
||||
chroot $TARGETDIR useradd -m -G "$(get_option USERGROUPS)" \
|
||||
-c "$(get_option USERNAME)" "$(get_option USERLOGIN)"
|
||||
echo "$(get_option USERLOGIN):$(get_option USERPASSWORD)" | \
|
||||
@ -990,6 +988,17 @@ menu_network() {
|
||||
fi
|
||||
}
|
||||
|
||||
validate_useraccount() {
|
||||
# don't check that USERNAME has been set because it can be empty
|
||||
local USERLOGIN=$(get_option USERLOGIN)
|
||||
local USERPASSWORD=$(get_option USERPASSWORD)
|
||||
local USERGROUPS=$(get_option USERGROUPS)
|
||||
|
||||
if [ -n "$USERLOGIN" ] && [ -n "$USERPASSWORD" ] && [ -n "$USERGROUPS" ]; then
|
||||
USERACCOUNT_DONE=1
|
||||
fi
|
||||
}
|
||||
|
||||
validate_filesystems() {
|
||||
local mnts dev size fstype mntpt mkfs rootfound fmt
|
||||
local usrfound efi_system_partition
|
||||
@ -1256,6 +1265,16 @@ please do so before starting the installation.${RESET}" ${MSGBOXSIZE}
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Validate useraccount. All parameters must be set (name, password, login name, groups).
|
||||
validate_useraccount
|
||||
|
||||
if [ -z "$USERACCOUNT_DONE" ]; then
|
||||
DIALOG --yesno "${BOLD}The user account is not set up properly.${RESET}\n\n
|
||||
${BOLD}${RED}WARNING: no user will be created. You will only be able to login \
|
||||
with the root user in your new system.${RESET}\n\n
|
||||
${BOLD}Do you want to continue?${RESET}" 10 60 || return
|
||||
fi
|
||||
|
||||
DIALOG --yesno "${BOLD}The following operations will be executed:${RESET}\n\n
|
||||
${BOLD}${TARGETFS}${RESET}\n
|
||||
${BOLD}${RED}WARNING: data on partitions will be COMPLETELY DESTROYED for new \
|
||||
@ -1474,7 +1493,7 @@ menu() {
|
||||
"Locale") menu_locale && [ -n "$LOCALE_DONE" ] && DEFITEM="Timezone";;
|
||||
"Timezone") menu_timezone && [ -n "$TIMEZONE_DONE" ] && DEFITEM="RootPassword";;
|
||||
"RootPassword") menu_rootpassword && [ -n "$ROOTPASSWORD_DONE" ] && DEFITEM="UserAccount";;
|
||||
"UserAccount") menu_useraccount && [ -n "$USERNAME_DONE" ] && [ -n "$USERPASSWORD_DONE" ] \
|
||||
"UserAccount") menu_useraccount && [ -n "$USERLOGIN_DONE" ] && [ -n "$USERPASSWORD_DONE" ] \
|
||||
&& DEFITEM="BootLoader";;
|
||||
"BootLoader") menu_bootloader && [ -n "$BOOTLOADER_DONE" ] && DEFITEM="Partition";;
|
||||
"Partition") menu_partitions && [ -n "$PARTITIONS_DONE" ] && DEFITEM="Filesystems";;
|
||||
|
Loading…
Reference in New Issue
Block a user