Update create-user.sh

This commit is contained in:
2025-07-03 18:11:12 +00:00
parent 131914a378
commit ffe4491dc0

View File

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