Enhance user prompts in setup script for existing user handling during additional user creation. Update SSH key setup process to reflect selected users, improving clarity in user feedback and logging. Streamline checks for user existence and adjust logging for SSH key management.
This commit is contained in:
55
setup.sh
55
setup.sh
@@ -90,8 +90,16 @@ ask_additional_user() {
|
||||
echo -e "${RED}Username cannot be the same as sysadmin user. Please choose a different name.${NC}"
|
||||
continue
|
||||
elif id "$username_input" &>/dev/null; then
|
||||
echo -e "${RED}User '$username_input' already exists. Please choose a different name.${NC}"
|
||||
continue
|
||||
echo -e "${YELLOW}User '$username_input' already exists.${NC}"
|
||||
read -p "Continue with existing user '$username_input'? (y/N): " continue_existing
|
||||
if [[ "$continue_existing" =~ ^[Yy]$ ]]; then
|
||||
ADDITIONAL_USER="$username_input"
|
||||
log "Will use existing user: $ADDITIONAL_USER"
|
||||
break
|
||||
else
|
||||
echo "Please choose a different name."
|
||||
continue
|
||||
fi
|
||||
else
|
||||
ADDITIONAL_USER="$username_input"
|
||||
log "Will create additional user: $ADDITIONAL_USER"
|
||||
@@ -138,28 +146,37 @@ ask_firewall_preferences() {
|
||||
|
||||
# Ask user about SSH key setup for created users
|
||||
ask_ssh_key_setup() {
|
||||
# Check if any users were created
|
||||
local users_created=()
|
||||
# Check if any users were created or selected
|
||||
local users_for_ssh=()
|
||||
|
||||
if [[ "$SYSADMIN_USER_CREATED" == "yes" ]]; then
|
||||
users_created+=("$SYSADMIN_USER")
|
||||
users_for_ssh+=("$SYSADMIN_USER")
|
||||
fi
|
||||
|
||||
if [[ "$ADDITIONAL_USER_CREATED" == "yes" ]]; then
|
||||
users_created+=("$ADDITIONAL_USER")
|
||||
if [[ "$CREATE_ADDITIONAL_USER" == "yes" && -n "$ADDITIONAL_USER" ]]; then
|
||||
users_for_ssh+=("$ADDITIONAL_USER")
|
||||
fi
|
||||
|
||||
# Only prompt if users were actually created
|
||||
if [[ ${#users_created[@]} -eq 0 ]]; then
|
||||
# Only prompt if users were created or selected
|
||||
if [[ ${#users_for_ssh[@]} -eq 0 ]]; then
|
||||
return
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo -e "${BLUE}=== SSH Key Setup ===${NC}"
|
||||
echo "Users created during setup: ${users_created[*]}"
|
||||
if [[ "$SYSADMIN_USER_CREATED" == "yes" ]]; then
|
||||
echo "Users created during setup: $SYSADMIN_USER"
|
||||
fi
|
||||
if [[ "$CREATE_ADDITIONAL_USER" == "yes" && -n "$ADDITIONAL_USER" ]]; then
|
||||
if [[ "$ADDITIONAL_USER_CREATED" == "yes" ]]; then
|
||||
echo "Additional user created: $ADDITIONAL_USER"
|
||||
else
|
||||
echo "Additional user selected: $ADDITIONAL_USER (existing)"
|
||||
fi
|
||||
fi
|
||||
echo "You can add your SSH public key for easier login."
|
||||
echo ""
|
||||
read -p "Add your SSH public key to created users? (Y/n): " add_key_choice
|
||||
read -p "Add your SSH public key to selected users? (Y/n): " add_key_choice
|
||||
|
||||
if [[ "$add_key_choice" =~ ^[Nn]$ ]]; then
|
||||
log "SSH key setup skipped"
|
||||
@@ -169,9 +186,9 @@ ask_ssh_key_setup() {
|
||||
local user_public_key=""
|
||||
|
||||
# Special case for user "sergio" - offer pre-defined key
|
||||
if [[ " ${users_created[*]} " =~ " sergio " ]]; then
|
||||
if [[ " ${users_for_ssh[*]} " =~ " sergio " ]]; then
|
||||
echo ""
|
||||
echo "Detected user 'sergio' was created."
|
||||
echo "Detected user 'sergio' in selected users."
|
||||
echo "Use pre-configured SSH key for sergio? (Y/n)"
|
||||
echo "Key: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINBYyuGSa2wswiiObp2qj30MoiNRyFdBIBciFSbtrkZ8 mbpm1"
|
||||
echo ""
|
||||
@@ -205,15 +222,15 @@ ask_ssh_key_setup() {
|
||||
done
|
||||
fi
|
||||
|
||||
# Add key to all created users and generate SSH keys for them
|
||||
for username in "${users_created[@]}"; do
|
||||
# Add key to all selected users and generate SSH keys for them
|
||||
for username in "${users_for_ssh[@]}"; do
|
||||
setup_ssh_key_for_user "$username" "$user_public_key"
|
||||
generate_ssh_key_for_user "$username"
|
||||
done
|
||||
|
||||
echo ""
|
||||
log "SSH key added to: ${users_created[*]}"
|
||||
log "SSH keys generated for: ${users_created[*]}"
|
||||
log "SSH key added to: ${users_for_ssh[*]}"
|
||||
log "SSH keys generated for: ${users_for_ssh[*]}"
|
||||
}
|
||||
|
||||
setup_ssh_key_for_user() {
|
||||
@@ -327,7 +344,7 @@ create_additional_user() {
|
||||
log "Creating additional user: $ADDITIONAL_USER"
|
||||
|
||||
if id "$ADDITIONAL_USER" &>/dev/null; then
|
||||
warn "User $ADDITIONAL_USER already exists, skipping creation"
|
||||
log "Using existing user: $ADDITIONAL_USER"
|
||||
ADDITIONAL_USER_CREATED="no"
|
||||
else
|
||||
# Create user with home directory
|
||||
@@ -340,7 +357,7 @@ create_additional_user() {
|
||||
passwd "$ADDITIONAL_USER"
|
||||
fi
|
||||
|
||||
# Add additional user to sudo group
|
||||
# Add additional user to sudo group (existing or newly created)
|
||||
log "Adding $ADDITIONAL_USER to sudo group..."
|
||||
usermod -aG sudo "$ADDITIONAL_USER"
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user