Script: add sudo user

Create a sudo user that won’t prompt for password on executing sudo commands.

#!/bin/bash

# Ensure script is run as root
if [[ $EUID -ne 0 ]]; then
   echo "❌ This script must be run as root"
   exit 1
fi

# Prompt for new username
read -p "Enter new username: " username

# Check if user already exists
if id "$username" &>/dev/null; then
    echo "⚠️ User '$username' already exists."
    exit 1
fi

# Prompt for password (silent input)
read -s -p "Enter password for $username: " password
echo
read -s -p "Confirm password: " password_confirm
echo

# Check passwords match
if [[ "$password" != "$password_confirm" ]]; then
    echo "❌ Passwords do not match."
    exit 1
fi

# Create user with home directory and bash shell
useradd -m -s /bin/bash "$username"

# Set user password
echo "${username}:${password}" | chpasswd

# Add user to sudo group
usermod -aG sudo "$username"

# Create a sudoers file to allow passwordless sudo
echo "$username ALL=(ALL) NOPASSWD:ALL" > "/etc/sudoers.d/$username"
chmod 440 "/etc/sudoers.d/$username"

echo "✅ User '$username' created with bash shell and passwordless sudo access."