This commit is contained in:
2026-03-08 08:17:21 +01:00
parent 5e2b2be4ef
commit 6469910bb7
2 changed files with 62 additions and 5 deletions

View File

@@ -137,6 +137,7 @@ user $SMTP_USER
password $SMTP_PASS
EOF
# 2. Comparaison avec le fichier existant
MSMTP_CONF="/etc/msmtprc"
SHOULD_UPDATE=false
@@ -145,7 +146,7 @@ if [ ! -f "$MSMTP_CONF" ]; then
echo "📜 Le fichier $MSMTP_CONF n'existe pas. Création..."
SHOULD_UPDATE=true
else
# Comparaison du contenu (diff ignore les différences de droits, uniquement le texte)
# Comparaison du contenu
if ! diff -q "$TMP_MSMTP" "$MSMTP_CONF" > /dev/null; then
echo "🔄 La configuration a changé. Mise à jour de $MSMTP_CONF..."
SHOULD_UPDATE=true
@@ -154,17 +155,31 @@ else
fi
fi
# 3. Application si nécessaire
# 3. Application et sécurisation
if [ "$SHOULD_UPDATE" = true ]; then
cp "$TMP_MSMTP" "$MSMTP_CONF"
chmod 600 "$MSMTP_CONF"
chown root:root "$MSMTP_CONF"
# --- CORRECTIONS DES DROITS ---
# On donne le fichier au groupe msmtp pour permettre l'accès au binaire
chown root:msmtp "$MSMTP_CONF"
# 640 : Root lit/écrit, le groupe msmtp lit, les autres rien (sécurité du mot de passe)
chmod 640 "$MSMTP_CONF"
# On s'assure que le binaire msmtp peut lire ce fichier quel que soit l'utilisateur
# Le bit 's' (setgid) permet à msmtp de prendre l'identité du groupe 'msmtp'
chmod g+s /usr/bin/msmtp
# On règle le problème du log une fois pour toutes (lecture/écriture pour tous)
touch /var/log/msmtp.log
chown root:msmtp /var/log/msmtp.log
chmod 666 /var/log/msmtp.log
fi
# Nettoyage du fichier temporaire
rm -f "$TMP_MSMTP"
h flo
# --- 6. INTERCEPTION GLOBALE (LE WRAPPER) ---
echo "--- 6. Création du wrapper sendmail pour préfixer les objets ---"
# On crée un script qui va modifier le sujet à la volée