diff --git a/create-user.sh b/create-user.sh index 356144b..05e9a87 100644 --- a/create-user.sh +++ b/create-user.sh @@ -1,20 +1,24 @@ #!/bin/bash -echo "🔐 Ansible User Setup Script" -echo "-----------------------------" +echo "🔐 Flexible User Creation Script" +echo "-------------------------------" -# Username prompt -read -p "👤 Enter username to create (default: ansible): " USERNAME -USERNAME=${USERNAME:-ansible} +# Prompt for username +read -p "👤 Enter username to create (required): " USERNAME +if [[ -z "$USERNAME" ]]; then + echo "❌ Error: Username is required." + exit 1 +fi -# SSH key prompt +# Prompt for public key read -p "🔑 Paste the SSH public key: " PUBKEY +if [[ -z "$PUBKEY" ]]; then + echo "❌ Error: Public key is required." + exit 1 +fi -# Group prompt -read -p "👥 Enter comma-separated groups to add (default: sudo, e.g. sudo,docker): " GROUPS -GROUPS=${GROUPS:-sudo} - -# Convert group list into array +# Prompt for optional groups +read -p "👥 Enter comma-separated groups to add (e.g. sudo,docker): " GROUPS IFS=',' read -ra GROUP_ARRAY <<< "$GROUPS" # Create user @@ -22,11 +26,16 @@ echo "" echo "📋 Creating user: $USERNAME" useradd -m -s /bin/bash "$USERNAME" -# Add user to each group -for group in "${GROUP_ARRAY[@]}"; do - echo "➕ Adding $USERNAME to group: $group" - usermod -aG "$group" "$USERNAME" -done +# Add user to groups if any provided +if [[ -n "$GROUPS" ]]; then + for group in "${GROUP_ARRAY[@]}"; do + group_trimmed=$(echo "$group" | xargs) # trim spaces + if [[ -n "$group_trimmed" ]]; then + echo "➕ Adding $USERNAME to group: $group_trimmed" + usermod -aG "$group_trimmed" "$USERNAME" + fi + done +fi # Set up SSH echo "🔒 Setting up SSH access..." @@ -39,5 +48,5 @@ chown -R $USERNAME:$USERNAME /home/$USERNAME/.ssh # Done echo "" echo "✅ User '$USERNAME' created." -echo "📦 Groups added: ${GROUP_ARRAY[*]}" +[[ -n "$GROUPS" ]] && echo "📦 Groups added: ${GROUP_ARRAY[*]}" echo "🎉 SSH key installed and permissions secured."