Eine PCI-DSS Regel eines Auditors den ich kenne besagt, „Keine Passwörter in Skripten einbauen“
Ich biete hier ein Verfahren wobei das Passwort mit openssl Verschlüsselt wird.
In dem zu benutzenden Skript wo das Passwort dann benötigt wird, entschlüsselt man dieses wieder mit dem uns bekannten openssl Verfahren.
#!/bin/bash #– —————————————————————————– #– Script : encpw.sh #– Task : Encode a password with openssl #– Reason : We don't want cleartext passwords in scripts #– Author : Stefan M. Dohn, 20.10.2021 #– 20.10.2021 SDohn Creation from scrap #– 20.10.2021 SDohn Make the filesnames configurable #– Last updates: 20.10.2021 11:45 #– —————————————————————————– #set -x export ME=$(whoami) PW="SecretPassword" EXECUSER="postgres" PWENC1="db_pg_basebackup1.enc" PWENC2="db_pg_basebackup2.enc" PARM="key.dec key.temp passwd passwd.dec passwd.enc" if [ „x$ME“ != „x$EXECUSER“ ]; then echo "Script muss als User $EXECUSER laufen" && exit 1; fi CLFL() { for i in $PARM do [ -e „$i“ ] && rm -f "$i" done } CLFL [ -e $PWENC1 ] && rm -f $PWENC1 [ -e $PWENC2 ] && rm -f $PWENC2 echo $PW > passwd openssl rand -out key.temp -base64 32 openssl des3 -pbkdf2 -e -pass file:key.temp -in passwd -out "$PWENC2" cp key.temp "$PWENC1" openssl des3 -pbkdf2 -d -pass file:"$PWENC1" -in "$PWENC2" -out passwd.dec openssl des3 -pbkdf2 -d -pass file:key.temp -in "$PWENC2" -out passwd.dec #PARM="key.temp passwd passwd.dec" CLFL ##we create strong permissions for the files chmod 440 $PWENC1 chmod 440 $PWENC2 #How to decode the file: echo echo "#How to decode the file:" #echo "openssl des3 -pbkdf2 -d -pass file:$PWD/$PWENC1 -in $PWD/$PWENC2" echo "openssl des3 -pbkdf2 -d -pass file:$PWENC1 -in $PWENC2" |