linux-fourre-tout
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Prochaine révision | Révision précédente | ||
| linux-fourre-tout [2025/10/25 22:35] – créée m1k3 | linux-fourre-tout [2025/10/27 14:29] (Version actuelle) – m1k3 | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | ====== Linux : le fourre-tout ====== | ||
| + | |||
| + | |||
| '' | '' | ||
| + | |||
| + | ====== Scripts ====== | ||
| + | |||
| + | ===== Sauvegarde sécurisée sur clé USB chiffrée ===== | ||
| + | |||
| + | Il est recommandé de stocker le script à l' | ||
| + | |||
| + | Ouvrez votre éditeur de texte favori avec les privilèges root et créez le fichier de script : '' | ||
| + | |||
| + | Pour trouver | ||
| + | |||
| + | Pour suivre l' | ||
| + | |||
| + | Nous allons configurer les permissions pour renforcer la sécurité des logs et du script. Exécutez les commandes suivantes : | ||
| + | |||
| + | < | ||
| + | # Créer le répertoire pour les logs | ||
| + | sudo mkdir -p / | ||
| + | |||
| + | # Configurer les permissions sur le répertoire des logs | ||
| + | sudo chmod 700 / | ||
| + | |||
| + | # Créer le fichier de log | ||
| + | sudo touch / | ||
| + | |||
| + | # Configurer les permissions sur le fichier de log | ||
| + | sudo chmod 600 / | ||
| + | </ | ||
| + | |||
| + | Il est crucial de s' | ||
| + | |||
| + | < | ||
| + | # Changer le propriétaire du script | ||
| + | sudo chown root:root / | ||
| + | |||
| + | # Rendre le script exécutable uniquement par root | ||
| + | sudo chmod 700 / | ||
| + | |||
| + | # Rendre le fichier de log lisible uniquement par root | ||
| + | sudo chmod 600 / | ||
| + | </ | ||
| + | |||
| + | Vous pouvez exécuter le script avec la commande suivante : '' | ||
| + | |||
| + | <file bash sync_luks_usb.sh> | ||
| + | #!/bin/bash | ||
| + | |||
| + | # ============================================================================ | ||
| + | # Script de synchronisation sécurisée vers une clé USB chiffrée avec LUKS | ||
| + | # - Vérifie les prérequis (droits root, outils, dossiers) | ||
| + | # - Détecte automatiquement une clé USB connue via UUID | ||
| + | # - Déverrouille, | ||
| + | # ============================================================================ | ||
| + | |||
| + | # 📁 Déclaration des emplacements | ||
| + | SOURCE_DIRS=("/ | ||
| + | MOUNT_POINT="/ | ||
| + | MAPPER_NAME=" | ||
| + | LOG_FILE="/ | ||
| + | |||
| + | # 🧩 Liste des UUIDs connues pour les clés USB | ||
| + | KNOWN_UUIDS=(" | ||
| + | |||
| + | # 🔐 Vérification que le script est exécuté en tant que root | ||
| + | if [ " | ||
| + | echo "❌ Ce script doit être exécuté avec des droits root. Utilisez ' | ||
| + | exit 1 | ||
| + | fi | ||
| + | |||
| + | # 📦 Vérifie si rsync est installé, sinon tente une installation automatique | ||
| + | command -v rsync >/ | ||
| + | echo "❌ rsync n'est pas installé. Installation en cours..." | ||
| + | sudo apt update && sudo apt install -y rsync | ||
| + | if [ $? -ne 0 ]; then | ||
| + | echo "❌ Échec de l' | ||
| + | exit 1 | ||
| + | fi | ||
| + | } | ||
| + | |||
| + | # 🔐 Vérifie si cryptsetup est installé, sinon tente une installation automatique | ||
| + | command -v cryptsetup >/ | ||
| + | echo "❌ cryptsetup n'est pas installé. Installation en cours..." | ||
| + | sudo apt update && sudo apt install -y cryptsetup | ||
| + | if [ $? -ne 0 ]; then | ||
| + | echo "❌ Échec de l' | ||
| + | exit 1 | ||
| + | fi | ||
| + | } | ||
| + | |||
| + | # 📁 Vérifie que les dossiers source existent | ||
| + | for dir in " | ||
| + | if [ ! -d " | ||
| + | echo "❌ Le dossier source ' | ||
| + | exit 1 | ||
| + | fi | ||
| + | done | ||
| + | |||
| + | # 📝 Vérifie que le répertoire de logs existe, sinon le créer | ||
| + | if [ ! -d "/ | ||
| + | echo "🔧 Création du répertoire de logs / | ||
| + | sudo mkdir -p / | ||
| + | sudo chmod 700 / | ||
| + | fi | ||
| + | |||
| + | # 🕒 Timestamp pour les logs | ||
| + | TIMESTAMP=$(date " | ||
| + | |||
| + | # 🔍 Recherche automatique de clés USB connues via UUID | ||
| + | echo "🔍 Recherche de clés USB connues..." | ||
| + | for uuid in " | ||
| + | USB_DEVICE=$(lsblk -o NAME,UUID | grep " | ||
| + | if [ -n " | ||
| + | echo "✅ Clé USB connue détectée : / | ||
| + | break | ||
| + | fi | ||
| + | done | ||
| + | |||
| + | # 🧑💻 Si aucune clé connue détectée, demande manuelle à l' | ||
| + | if [ -z " | ||
| + | echo "❌ Aucune clé USB connue détectée." | ||
| + | echo "📋 Liste des périphériques USB disponibles :" | ||
| + | lsblk -o NAME, | ||
| + | echo "" | ||
| + | read -p "👉 Entrez le nom du périphérique USB à utiliser (ex: sdb1) : " USB_DEVICE | ||
| + | fi | ||
| + | |||
| + | # 📦 Vérifie que le périphérique existe | ||
| + | if [ ! -b "/ | ||
| + | echo "❌ Le périphérique / | ||
| + | echo " | ||
| + | exit 1 | ||
| + | fi | ||
| + | |||
| + | # 🔎 Vérifie que la partition est chiffrée avec LUKS | ||
| + | echo "🔎 Vérification du chiffrement LUKS..." | ||
| + | if ! sudo cryptsetup isLuks "/ | ||
| + | echo "❌ La partition / | ||
| + | echo " | ||
| + | exit 1 | ||
| + | fi | ||
| + | # 🔐 Déverrouillage de la partition chiffrée avec le mot de passe LUKS | ||
| + | echo "🔐 Veuillez entrer le mot de passe LUKS pour / | ||
| + | sudo cryptsetup open "/ | ||
| + | if [ $? -ne 0 ]; then | ||
| + | echo "❌ Échec du déverrouillage LUKS." | ||
| + | echo " | ||
| + | exit 1 | ||
| + | fi | ||
| + | |||
| + | # 📁 Création du point de montage si nécessaire | ||
| + | sudo mkdir -p " | ||
| + | |||
| + | # 📦 Montage de la partition déverrouillée | ||
| + | echo "📦 Montage de la clé USB..." | ||
| + | sudo mount "/ | ||
| + | if [ $? -ne 0 ]; then | ||
| + | echo "❌ Échec du montage." | ||
| + | echo " | ||
| + | sudo cryptsetup close " | ||
| + | exit 1 | ||
| + | fi | ||
| + | |||
| + | # 🔄 Synchronisation des fichiers avec rsync | ||
| + | for dir in " | ||
| + | echo "🔄 Synchronisation en cours de ' | ||
| + | rsync -av --delete " | ||
| + | done | ||
| + | |||
| + | # 📤 Démontage et fermeture de la partition | ||
| + | echo "📤 Démontage et fermeture de la partition..." | ||
| + | sudo umount " | ||
| + | sudo cryptsetup close " | ||
| + | sudo rmdir " | ||
| + | |||
| + | # ✅ Fin du script | ||
| + | echo "✅ Synchronisation terminée avec succès." | ||
| + | echo " | ||
| + | </ | ||
linux-fourre-tout.1761431744.txt.gz · Dernière modification : de m1k3
