2023-07-14 07:38:01 +00:00
#!/bin/bash
# User Management Script, powered by an SQL database
# (c) Sangelo | Read Licenses for more info: https://gitpot.dev/sangelo/user-mgmt
# Variables
E_BADARGS = 65
MYSQL = ` which mysql`
2023-07-14 07:48:10 +00:00
MYSQL_USER = "root"
2023-07-14 07:38:01 +00:00
USAGE = "
$0 -- user management script
Usage:
init
add { username} { name} { description}
delete { username}
list
"
# Check for correct number of arguments and action
if [ $# -lt 1 ]
then
echo " $USAGE "
exit $E_BADARGS
fi
# Switch between different actions
case " $1 " in
"init" )
2023-07-14 07:48:10 +00:00
Q1 = "CREATE SCHEMA if not exists usermgmt; use usermgmt; CREATE TABLE if not exists users (username varchar(255), name varchar(255), description varchar(255));"
2023-07-14 07:38:01 +00:00
SQL = " ${ Q1 } "
; ;
2023-07-14 08:13:43 +00:00
2023-07-14 07:38:01 +00:00
"add" )
if [ $# -ne 4 ]
then
echo "Error: Invalid action."
echo " $USAGE "
exit $E_BADARGS
fi
Q1 = " INSERT INTO usermgmt.users (username, name, description) VALUES (' $2 ', ' $3 ', ' $4 '); "
SQL = " ${ Q1 } "
2023-07-14 08:13:43 +00:00
PASSWORD = ` openssl rand -base64 12`
useradd -m -p " $PASSWORD " " $2 "
echo " $PASSWORD " > " /home/ $2 /password.txt "
echo "This is your password. Please delete this file after saving the password." >> " /home/ $2 /password.txt "
2023-07-14 07:38:01 +00:00
; ;
2023-07-14 08:13:43 +00:00
"delete" )
2023-07-14 07:38:01 +00:00
if [ $# -ne 2 ]
then
2023-07-14 08:13:43 +00:00
echo "Error: Invalid action."
echo " $USAGE "
exit $E_BADARGS
fi
echo -n "Are you sure you want to delete user " $2 "? [y/N] "
read confirm
if [ " $confirm " = "y" ] || [ " $confirm " = "Y" ]
then
Q1 = " DELETE FROM usermgmt.users WHERE username = ' $2 '; "
SQL = " ${ Q1 } "
userdel -r " $2 "
else
echo "User deletion cancelled."
exit 0
2023-07-14 07:38:01 +00:00
fi
; ;
2023-07-14 08:13:43 +00:00
2023-07-14 07:38:01 +00:00
"list" )
if [ $# -ne 1 ]
then
echo "Error: Invalid action."
echo " $USAGE "
exit $E_BADARGS
fi
Q1 = "SELECT username, name, description FROM usermgmt.users;"
SQL = " ${ Q1 } "
; ;
2023-07-14 08:13:43 +00:00
2023-07-14 07:38:01 +00:00
*)
echo "Error: Invalid action. Please use a valid argument."
echo " $USAGE "
exit $E_BADARGS
; ;
esac
2023-07-14 08:14:39 +00:00
echo "Creating MySQL connection... Enter your password if prompted."
2023-07-14 07:38:01 +00:00
$MYSQL -u " $MYSQL_USER " -p -e " $SQL "
2023-07-14 08:15:21 +00:00
echo "Done."