améiloration de la gestion du mot d epasse

This commit is contained in:
Cédric Abonnel 2025-03-24 13:34:05 +01:00
parent 3d64c538af
commit 4936d3c8e7
1 changed files with 29 additions and 5 deletions
scripts/server-postgres

View File

@ -9,15 +9,26 @@ check_root
set -e
ROLE_NAME="$1"
# Demande interactive si le rôle nest pas passé en paramètre
if [[ -n "$1" ]]; then
ROLE_NAME="$1"
else
read -p "👤 Entrez le nom du rôle PostgreSQL à créer : " ROLE_NAME
fi
if [[ -z "$ROLE_NAME" ]]; then
echo "❌ Usage: $0 <nom_du_role>"
echo "❌ Le nom du rôle est obligatoire."
exit 1
fi
# Demander le mot de passe de l'utilisateur 'postgres'
read -s -p "🔑 Entrez le mot de passe de l'utilisateur 'postgres' : " POSTGRES_PASSWORD
echo ""
export PGPASSWORD="${POSTGRES_PASSWORD}"
echo "🔎 Vérification de l'existence du rôle PostgreSQL '$ROLE_NAME'..."
ROLE_EXISTS=$(sudo -u postgres psql -tAc "SELECT 1 FROM pg_roles WHERE rolname='${ROLE_NAME}'")
ROLE_EXISTS=$(psql -U postgres -tAc "SELECT 1 FROM pg_roles WHERE rolname='${ROLE_NAME}'")
if [[ "$ROLE_EXISTS" == "1" ]]; then
echo "⚠️ Le rôle '$ROLE_NAME' existe déjà."
@ -26,7 +37,7 @@ else
ROLE_PASSWORD=$(generate_token 20)
echo "🛠 Création du rôle '$ROLE_NAME' avec LOGIN et mot de passe..."
sudo -u postgres psql -c "CREATE ROLE ${ROLE_NAME} WITH LOGIN PASSWORD '${ROLE_PASSWORD}';"
psql -U postgres -c "CREATE ROLE ${ROLE_NAME} WITH LOGIN PASSWORD '${ROLE_PASSWORD}';"
echo ""
echo "✅ Rôle '$ROLE_NAME' créé avec succès."
@ -34,7 +45,20 @@ else
echo " Nom du rôle : ${ROLE_NAME}"
echo " Mot de passe : ${ROLE_PASSWORD}"
echo "-------------------------------------------"
echo " Pensez à sauvegarder ces informations."
# Proposer d'enregistrer dans .pgpass
read -p "💾 Voulez-vous enregistrer ces identifiants dans ~/.pgpass ? (y/n) " SAVE_PASS
if [[ "$SAVE_PASS" =~ ^[Yy]$ ]]; then
PGPASS_FILE="${HOME}/.pgpass"
echo "*:*:*:${ROLE_NAME}:${ROLE_PASSWORD}" >> "$PGPASS_FILE"
chmod 600 "$PGPASS_FILE"
echo "✅ Identifiants sauvegardés dans $PGPASS_FILE"
fi
echo "⚠️ Pensez à sauvegarder ces informations si vous ne les enregistrez pas."
fi
unset PGPASSWORD
unset POSTGRES_PASSWORD
echo "🎉 Opération terminée."