#!/bin/bash Create_user(){ echo echo -n "Username: " read -r uname if [[ ! "${uname}" =~ ^[a-z_][a-z0-9_-]*[$]?$ ]]; then echo "Error: Invalid username format (use lowercase letters, numbers, hyphens, underscores)" return 1 fi if id "${uname}" >/dev/null 2>&1; then echo "Error: User '${uname}' already exists" return 1 fi echo "Additional Groups: " echo echo "[1] - Arch Linux Defaults" echo "[2] - Void Linux Defaults" echo "[3] - Custom" read -r dgroups if [ "${dgroups}" = "1" ];then addgroups="power,wheel,optical,network,video,audio,storage" elif [ "${dgroups}" = "2" ];then addgroups="disk,wheel,storage,audio,video,optical,lp,network,dbus,xbuilder" elif [ "${dgroups}" = "3" ];then echo -n "Enter desired groups (comma separated): " read -r custgroups addgroups="${custgroups}" else addgroups="" fi useradd -m -g users -G "${addgroups}" -s /bin/bash "${uname}" passwd "${uname}" echo if [ -d /home/"${uname}" ];then echo "User ${uname} created" else echo "User creation failed" fi } Remove_user(){ echo echo -n "Username to delete: " read -r duser if [[ ! "${duser}" =~ ^[a-z_][a-z0-9_-]*[$]?$ ]]; then echo "Error: Invalid username format" return 1 fi if ! id "${duser}" >/dev/null 2>&1; then echo "Error: User '${duser}' does not exist" return 1 fi userdel "${duser}" if [ ! -d /home/"${duser}" ];then echo "User ${duser} deleted" else rm -R /home/"${duser}" echo "User ${duser} deleted" fi } main(){ while true;do clear echo echo "[1] - Add User" echo "[2] - Remove User" echo echo -n "Choose: " read -r choice if [ "${choice}" = "1" ];then Create_user elif [ "${choice}" = "2" ];then Remove_user else echo "Invalid option" fi read -r -n 1 -p "Press any key to continue..." done } case "$1" in add ) Create_user;; remove ) Remove_user;; * ) echo "Usage: mkusr [add | remove]";; esac