diff --git a/Scripts/bash/create_n8n_user.sh b/Scripts/bash/create_n8n_user.sh new file mode 100644 index 0000000..333039b --- /dev/null +++ b/Scripts/bash/create_n8n_user.sh @@ -0,0 +1,58 @@ +#!/bin/bash + +# This script creates a new user, generates a random password for them, +# and adds them to the sudo group. +# IMPORTANT: This script must be run with sudo privileges. + +# --- Configuration --- +USERNAME="n8nuser" +# --- + +# 1. Check for sudo/root privileges +if [ "$(id -u)" -ne 0 ]; then + echo "This script must be run as root or with sudo." >&2 + exit 1 +fi + +# 2. Check if user already exists +if id -u "$USERNAME" >/dev/null 2>&1; then + echo "User '$USERNAME' already exists. Exiting." + exit 0 +fi + +# 3. Create the user +echo "Creating user '$USERNAME'..." +useradd -m -s /bin/bash "$USERNAME" +if [ $? -ne 0 ]; then + echo "Failed to create user '$USERNAME'. Exiting." >&2 + exit 1 +fi + +# 4. Generate and set password +echo "Generating password for '$USERNAME'..." +PASSWORD=$(head /dev/urandom | tr -dc A-Za-z0-9_.- | head -c 24) +echo "$USERNAME:$PASSWORD" | chpasswd +if [ $? -ne 0 ]; then + echo "Failed to set password for '$USERNAME'." >&2 + # Clean up by deleting the user if password set fails + userdel -r "$USERNAME" + exit 1 +fi + +# 5. Add user to the sudo group +echo "Adding user '$USERNAME' to the 'sudo' group..." +usermod -aG sudo "$USERNAME" +if [ $? -ne 0 ]; then + echo "Failed to add user to the sudo group." >&2 + exit 1 +fi + +# 6. Display the result +echo "" +echo "-----------------------------------------------------" +echo "User '$USERNAME' created successfully." +echo "Generated Password: $PASSWORD" +echo "Please save this password in a secure location." +echo "-----------------------------------------------------" + +exit 0