diff --git a/src/freedombone-installer b/src/freedombone-installer index 017bd8f6ea9d0a9e68158157577fd6682422a0f6..4d86795f5ca62d425860ce8c9add7edc2b395e10 100755 --- a/src/freedombone-installer +++ b/src/freedombone-installer @@ -59,6 +59,26 @@ function wait_for_enough_entropy { done } +function web_admin_create_user { + username="$1" + password="$2" + + if [ ! "$username" ]; then + return + fi + + if [ ! -d /home/$username ]; then + chmod 600 /etc/shadow + chmod 600 /etc/gshadow + useradd -m -p "$password" -s /bin/bash "$username" + groupadd "$user" + chmod 0000 /etc/shadow + chmod 0000 /etc/gshadow + else + echo "${username}:${password}"|chpasswd + fi +} + function web_admin_setup_login { # if an nginx password file has not been created for web admin if [ -f /etc/nginx/.webadminpasswd ]; then @@ -75,16 +95,7 @@ function web_admin_setup_login { webadmin_password="$(openssl rand -base64 32 | tr -dc A-Za-z0-9 | head -c 10 ; echo -n '')" - if [ ! -d /home/${webadmin_user} ]; then - chmod 600 /etc/shadow - chmod 600 /etc/gshadow - useradd -m -p "$webadmin_password" -s /bin/bash "$webadmin_user" - groupadd "$webadmin_user" - chmod 0000 /etc/shadow - chmod 0000 /etc/gshadow - else - echo "${webadmin_user}:${webadmin_password}"|chpasswd - fi + web_admin_create_user "$webadmin_user" "$webadmin_password" # create a password for users if [ ! -f /etc/nginx/.webadminpasswd ]; then @@ -270,6 +281,12 @@ function before_setup_runs { MY_USERNAME=$(cat "$setup_file") if [ ! "$MY_USERNAME" ]; then MY_USERNAME="$webadmin_user" + else + if [[ "$MY_USERNAME" != "$webadmin_user" ]]; then + web_admin_create_user "$webadmin_user" "$webadmin_password" + webadmin_user="$MY_USERNAME" + + fi fi DEFAULT_DOMAIN_NAME=${local_hostname}