postgresql_passchanger_func.../password_creator.sh

195 lines
4.0 KiB
Bash
Raw Normal View History

2022-05-06 07:16:15 +00:00
#!/bin/bash
# Exit codes:
# 1 :
# 2 :
# 3 :
# 4 :
########################################################################
#
# CONSTANTS
#
########################################################################
# colors
BOLD="\e[1m"
GREEN="\e[32m"
LIGHTGREEN="${BOLD}${GREEN}"
RED="\033[1;31m"
LIGHTRED="\033[1;31m"
BLUE="\e[34m"
LIGHTBLUE="${BOLD}${BLUE}"
YELLOW="\e[33m"
LIGHTYELLOW="${BOLD}${YELLOW}"
WHITE="\033[0;37m"
RESET="\033[0;00m"
NOW="$(date +%Y%m%d%H%M%S)"
DEBUG=0
DEBUG=1
########################################################################
#
# / CONSTANTS
#
########################################################################
########################################################################
#
# VARIABLES
#
########################################################################
SCRIPTLOG="$(dirname `readlink -f $0`)/logs/$(basename $0 .sh)_script_${NOW}.log"
SCRIPTLOGERR="$(dirname `readlink -f $0`)/logs/$(basename $0 .sh)_script_${NOW}.err"
MINIMUMPASSWORDLENGTH=8
PASSWORDLENGTH=20
THEPASSWORD=""
########################################################################
#
# / VARIABLES
#
########################################################################
########################################################################
#
# FUNCTIONS
#
########################################################################
usage()
{
printf "%s${LIGHTRED}USAGE:${RESET}
$0 -u USERNAME -t TEMPLAGE_FILE [-h] [-D]
-h this help
-D DEBUG mode
"
}
printmsg()
{
echo -e "$*"
}
output_log()
{
if [[ "${QUIETOUTPUT}" == true ]]; then
printmsg "$*" >> ${OUTPUTFILE}
else
printmsg "$*" | tee -a "${OUTPUTFILE}"
fi
}
abort_message()
{
printmsg "${LIGHTRED}ERROR${RESET}: $*"
exit 1
}
# ssh_it uses variable ${DEBUGME}
ssh_it()
{
if [[ "${DEBUGME}" && ${DEBUGME} -eq 0 ]] ; then
${SSHIT} $*
else
${SSHIT} $* 2>/dev/null
fi
}
# debug_me uses variable ${DEBUGME}
debug_me()
{
if [[ "${DEBUGME}" && ${DEBUGME} -eq 0 ]] ; then
echo -e "${LIGHTBLUE}DEBUG: ${RESET}$*"
fi
}
password_generator()
{
export THEPASSWORD="$(tr -cd '[:alnum:]@#$%^&*()_+{}|<>?=' < /dev/urandom | fold -w${PASSWORDLENGTH} | head -n 1)"
}
check_password()
{
echo -e "-- ${LIGHTYELLOW}CHECK:${RESET} password check"
echo -e "-- $(echo ${THEPASSWORD} | egrep --color "\!|@|#|\\$|%|\^|\&|\*|\(|\)|_|\+|\{|\}|\||<|>|\?|=") "
if [[ "$(echo ${THEPASSWORD} | egrep "\!|@|#|\\$|%|\^|\&|\*|\(|\)|_|\+|\{|\}|\||<|>|\?|=")" ]] ; then
RETURNVALUE=0
else
RETURNVALUE=1
fi
echo -e "-- ${LIGHTYELLOW}/CHECK:${RESET} password check"
return ${RETURNVALUE}
}
########################################################################
#
# / FUNCTIONS
#
########################################################################
########################################################################
#
# MAIN
#
########################################################################
if [[ ${DEBUG} -eq 0 ]] ; then
[[ ! -d $(dirname ${SCRIPTLOG}) ]] && mkdir -p $(dirname ${SCRIPTLOG})
[[ ! -d $(dirname ${SCRIPTLOGERR}) ]] && mkdir -p $(dirname ${SCRIPTLOGERR})
echo -e "${BLUE}DEBUGMODE${RESET} is on"
echo -e "\t SCRIPTLOG will be ${SCRIPTLOG}"
echo -e "\t SCRIPTLOGERR will be ${SCRIPTLOGERR}"
#set -x
#exec 2> ${SCRIPTLOGERR}
fi
while getopts "hDF" arg; do
case $arg in
h)
usage
;;
F)
MAYTHEFORCEBEWITHYOU=true
echo -e "${LIGHTBLUE}The force is strong in you?${RESET}"
;;
D)
DEBUG=0
;;
*)
usage
;;
esac
done
password_generator
check_password
RES=$?
echo -e "
-- ##############################################
select dba.change_my_password('${THEPASSWORD}') ;
-- ##############################################
"
exit ${EXITCODE}
########################################################################
#
# / MAIN
#
########################################################################