From 1d4d64e50824b7cfdb6a844e31d43e75157f7f2d Mon Sep 17 00:00:00 2001 From: Jorge Holgado Date: Fri, 6 May 2022 09:16:15 +0200 Subject: [PATCH] Added password creator helper script --- password_creator.sh | 194 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 194 insertions(+) create mode 100644 password_creator.sh diff --git a/password_creator.sh b/password_creator.sh new file mode 100644 index 0000000..370ddcd --- /dev/null +++ b/password_creator.sh @@ -0,0 +1,194 @@ +#!/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 +# +########################################################################