Outils pour utilisateurs

Outils du site


linux-fourre-tout

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
linux-fourre-tout [2025/10/26 21:45] m1k3linux-fourre-tout [2026/01/08 12:55] (Version actuelle) m1k3
Ligne 1: Ligne 1:
 ====== Linux : le fourre-tout ====== ====== Linux : le fourre-tout ======
  
 +''sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y && sudo apt clean -y && sudo reboot''
  
-''sudo apt update && sudo apt full-upgrade -&& sudo apt autoremove -y && sudo apt clean -y &sudo reboot''+ 
 +===== Mise à jour du système ===== 
 +**Utiliser ''%%apt upgrade%%'' :** 
 + 
 +  * **Fréquence :** Tous les jours ou régulièrement. 
 +  * **Contexte :** Mise à jour classique sans risque. 
 +  * **Avantage :** Ne supprime rien, ne casse rien. 
 +  * **Exemples :** 
 +    * Mise à jour de sécurité. 
 +    * Mise à jour de logiciels standards. 
 +    * En environnement de production ou serveur critique. 
 + 
 +**Utiliser ''%%apt full-upgrade%%'' :** 
 + 
 +  * **Fréquence :** Occasionnellement, selon les besoins. 
 +  * **Contexte :** Mise à jour majeure ou changement de version. 
 +  * **Avantage :** Gère les dépendances complexes. 
 +  * **Risques :** Peut supprimer des paquets. 
 +  * **Exemples :**  
 +    * Après un changement de version (ex : Mint 21 → Mint 22). 
 +    * Pour installer un nouveau noyau ou une version majeure de systemd. 
 +    * Quand ''%%apt upgrade%%'' refuse de mettre à jour certains paquets. 
 + 
 +**Bonnes pratiques :** 
 + 
 +Toujours commencer par : ''%%sudo apt update%%'' 
 + 
 +===== Scripts ===== 
 + 
 +==== Sauvegarde sécurisée sur clé USB chiffrée ==== 
 + 
 +Il est recommandé de stocker le script à l'emplacement suivant : ''%%/usr/local/bin/sync_luks_usb.sh%%'' 
 + 
 +Ouvrez votre éditeur de texte favori avec les privilèges root et créez le fichier de script : ''%%sudo nano /usr/local/bin/sync_luks_usb.sh%%'' 
 + 
 +Pour trouver  l'UUID d'une disque dur ou d'une clé USB : ''%%lsblk -o UUID,NAME,SIZE,MOUNTPOINT%%'' 
 + 
 +Pour suivre l'activité du script, nous allons créer un fichier de log. L'emplacement recommandé est : ''%%/var/log/custom/sync_luks_usb.log%%'' 
 + 
 +Nous allons configurer les permissions pour renforcer la sécurité des logs et du script. Exécutez les commandes suivantes : 
 + 
 +<code> 
 +# Créer le répertoire pour les logs 
 +sudo mkdir -p /var/log/custom 
 + 
 +# Configurer les permissions sur le répertoire des logs 
 +sudo chmod 700 /var/log/custom 
 + 
 +# Créer le fichier de log 
 +sudo touch /var/log/custom/sync_luks_usb.log 
 + 
 +# Configurer les permissions sur le fichier de log 
 +sudo chmod 600 /var/log/custom/sync_luks_usb.log 
 +</code> 
 + 
 +Il est crucial de s'assurer que seule l'utilisateur root peut exécuter le script et lire les logs : 
 + 
 +<code> 
 +# Changer le propriétaire du script 
 +sudo chown root:root /usr/local/bin/sync_luks_usb.sh 
 + 
 +# Rendre le script exécutable uniquement par root 
 +sudo chmod 700 /usr/local/bin/sync_luks_usb.sh 
 + 
 +# Rendre le fichier de log lisible uniquement par root 
 +sudo chmod 600 /var/log/custom/sync_luks_usb.log 
 +</code> 
 + 
 +Vous pouvez exécuter le script avec la commande suivante : ''%%sudo /usr/local/bin/sync_luks_usb.sh%%'' 
 + 
 +<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, monte, synchronise avec rsync, démonte et ferme 
 +# ============================================================================ 
 + 
 +# 📁 Déclaration des emplacements 
 +SOURCE_DIRS=("/home/exemple_1" "/home/exemple_2" "/home/dossier/exemple_3"
 +MOUNT_POINT="/media/usb_media" 
 +MAPPER_NAME="encrypted_usb_media" 
 +LOG_FILE="/var/log/custom/sync_luks_usb.log" 
 + 
 +# 🧩 Liste des UUIDs connues pour les clés USB 
 +KNOWN_UUIDS=("1234-ABCD" "5678-EFGH" "90AB-CDEF"
 + 
 +# 🔐 Vérification que le script est exécuté en tant que root 
 +if [ "$EUID" -ne 0 ]; then 
 +    echo "❌ Ce script doit être exécuté avec des droits root. Utilisez 'sudo' pour l'exécuter." 
 +    exit 1 
 +fi 
 + 
 +# 📦 Vérifie si rsync est installé, sinon tente une installation automatique 
 +command -v rsync >/dev/null 2>&1 || { 
 +    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'installation de rsync. Veuillez l'installer manuellement." 
 +        exit 1 
 +    fi 
 +
 + 
 +# 🔐 Vérifie si cryptsetup est installé, sinon tente une installation automatique 
 +command -v cryptsetup >/dev/null 2>&1 || { 
 +    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'installation de cryptsetup. Veuillez l'installer manuellement." 
 +        exit 1 
 +    fi 
 +
 + 
 +# 📁 Vérifie que les dossiers source existent 
 +for dir in "${SOURCE_DIRS[@]}"; do 
 +    if [ ! -d "$dir" ]; then 
 +        echo "❌ Le dossier source '$dir' n'existe pas." 
 +        exit 1 
 +    fi 
 +done 
 + 
 +# 📝 Vérifie que le répertoire de logs existe, sinon le créer 
 +if [ ! -d "/var/log/custom" ]; then 
 +    echo "🔧 Création du répertoire de logs /var/log/custom..." 
 +    sudo mkdir -p /var/log/custom 
 +    sudo chmod 700 /var/log/custom 
 +fi 
 + 
 +# 🕒 Timestamp pour les logs 
 +TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S"
 + 
 +# 🔍 Recherche automatique de clés USB connues via UUID 
 +echo "🔍 Recherche de clés USB connues..." 
 +for uuid in "${KNOWN_UUIDS[@]}"; do 
 +    USB_DEVICE=$(lsblk -o NAME,UUID | grep "$uuid" | awk '{print $1}'
 +    if [ -n "$USB_DEVICE" ]; then 
 +        echo "✅ Clé USB connue détectée : /dev/$USB_DEVICE (UUID: $uuid)" 
 +        break 
 +    fi 
 +done 
 + 
 +# 🧑‍💻 Si aucune clé connue détectée, demande manuelle à l'utilisateur 
 +if [ -z "$USB_DEVICE" ]; then 
 +    echo "❌ Aucune clé USB connue détectée." 
 +    echo "📋 Liste des périphériques USB disponibles :" 
 +    lsblk -o NAME,SIZE,TYPE,MOUNTPOINT | grep -E 'sd[b-z][0-9]*' 
 +    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 "/dev/$USB_DEVICE" ]; then 
 +    echo "❌ Le périphérique /dev/$USB_DEVICE n'existe pas." 
 +    echo "$TIMESTAMP - Erreur : périphérique /dev/$USB_DEVICE introuvable." >> "$LOG_FILE" 
 +    exit 1 
 +fi 
 + 
 +# 🔎 Vérifie que la partition est chiffrée avec LUKS 
 +echo "🔎 Vérification du chiffrement LUKS..." 
 +if ! sudo cryptsetup isLuks "/dev/$USB_DEVICE"; then 
 +    echo "❌ La partition /dev/$USB_DEVICE n'est pas chiffrée avec LUKS. Synchronisation annulée." 
 +    echo "$TIMESTAMP - Annulation : /dev/$USB_DEVICE n'est pas chiffrée avec LUKS." >> "$LOG_FILE" 
 +    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 /dev/$USB_DEVICE :" 
 +sudo cryptsetup open "/dev/$USB_DEVICE" "$MAPPER_NAME" 
 +if [ $? -ne 0 ]; then 
 +    echo "❌ Échec du déverrouillage LUKS." 
 +    echo "$TIMESTAMP - Échec du déverrouillage LUKS pour /dev/$USB_DEVICE." >> "$LOG_FILE" 
 +    exit 1 
 +fi 
 + 
 +# 📁 Création du point de montage si nécessaire 
 +sudo mkdir -p "$MOUNT_POINT" 
 + 
 +# 📦 Montage de la partition déverrouillée 
 +echo "📦 Montage de la clé USB..." 
 +sudo mount "/dev/mapper/$MAPPER_NAME" "$MOUNT_POINT" 
 +if [ $? -ne 0 ]; then 
 +    echo "❌ Échec du montage." 
 +    echo "$TIMESTAMP - Échec du montage de /dev/mapper/$MAPPER_NAME." >> "$LOG_FILE" 
 +    sudo cryptsetup close "$MAPPER_NAME" 
 +    exit 1 
 +fi 
 + 
 +# 🔄 Synchronisation des fichiers avec rsync 
 +for dir in "${SOURCE_DIRS[@]}"; do 
 +    echo "🔄 Synchronisation en cours de '$dir' vers '$MOUNT_POINT/server_backup/'..." 
 +    rsync -av --delete "$dir" "$MOUNT_POINT/server_backup/" >> "$LOG_FILE" 2>&
 +done 
 + 
 +# 📤 Démontage et fermeture de la partition 
 +echo "📤 Démontage et fermeture de la partition..." 
 +sudo umount "$MOUNT_POINT" 
 +sudo cryptsetup close "$MAPPER_NAME" 
 +sudo rmdir "$MOUNT_POINT" 2>/dev/null 
 + 
 +# ✅ Fin du script 
 +echo "✅ Synchronisation terminée avec succès." 
 +echo "$TIMESTAMP - Synchronisation réussie vers /dev/$USB_DEVICE." >> "$LOG_FILE" 
 +</file> 
 + 
 +====== Etat et niveau de la batterie ====== 
 + 
 +Commande pour vérifier l'état et le niveau de la batterie d'un ordinateur portable à partir de la ligne de commande sous Linux : ''upower -i `upower -e | grep 'BAT'`''
linux-fourre-tout.1761515108.txt.gz · Dernière modification : de m1k3