#!/bin/bash # Basé sur un travail de Cédric Abonnel / Cédrix sous licence CC BY-NC 4.0 # Importer les fonctions communes source "$(dirname "$0")/../common/common_utils.sh" # Vérifier si le script est exécuté en root check_root set -e # Demande interactive si le rôle n’est 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 "❌ 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 "" # Générer le mot de passe du rôle echo "🔐 Génération d'un mot de passe fort pour le rôle '$ROLE_NAME'..." ROLE_PASSWORD=$(generate_token 20) # Exécution des commandes SQL de manière sécurisée echo "🔎 Exécution des commandes SQL avec sudo..." sudo -u postgres env PGPASSWORD="${POSTGRES_PASSWORD}" psql -v ON_ERROR_STOP=1 -U postgres -h localhost <> "$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." echo "🎉 Opération terminée."