Outils pour utilisateurs

Outils du site


projets:scriptdeconfigurationlinux

Différences

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

Lien vers cette vue comparative

projets:scriptdeconfigurationlinux [2025/02/10 21:56] – créée nicolaspoirierprojets:scriptdeconfigurationlinux [2025/02/10 22:04] (Version actuelle) nicolaspoirier
Ligne 115: Ligne 115:
   * **Sauvegarder les fichiers de configuration avant toute modification.**   * **Sauvegarder les fichiers de configuration avant toute modification.**
   * **S’assurer que l’adresse IP et les paramètres réseau sont corrects pour éviter toute perte de connexion.**   * **S’assurer que l’adresse IP et les paramètres réseau sont corrects pour éviter toute perte de connexion.**
 +
 +===== Script =====
 +
 +<code bash>
 +#!/bin/bash
 +
 +# Vérifier si le script est exécuté en tant que root
 +if [ "$EUID" -ne 0 ]; then
 +    echo "Ce script doit être exécuté en tant que root."
 +    exit 1
 +fi
 +
 +# Fonction pour valider une adresse IP
 +validate_ip() {
 +    local ip=$1
 +    local IFS=.
 +    local -a octets=($ip)
 +    
 +    if [[ ${#octets[@]} -ne 4 ]]; then
 +        return 1
 +    fi
 +    
 +    for octet in "${octets[@]}"; do
 +        if ! [[ "$octet" =~ ^[0-9]+$ ]]; then
 +            return 1
 +        fi
 +        if ((octet < 0 || octet > 255)); then
 +            return 1
 +        fi
 +    done
 +    return 0
 +}
 +
 +# Régénération des certificats SSH
 +echo "Régénération des certificats SSH..."
 +systemctl stop ssh
 +rm -f /etc/ssh/ssh_host_*
 +ssh-keygen -A
 +systemctl restart ssh
 +
 +# Liste des interfaces réseau
 +echo "Liste des interfaces réseau disponibles:"
 +ip -o link show | awk -F': ' '{print $2}'
 +read -p "Choisissez une interface réseau: " NET_INTERFACE
 +
 +# Configuration réseau
 +echo "Configuration des paramètres réseau en mode fixe"
 +while true; do
 +    read -p "Adresse IP: " IP_ADDR
 +    if validate_ip "$IP_ADDR"; then break; fi
 +    echo "Adresse IP invalide, veuillez entrer une adresse valide (ex: 192.168.1.100)."
 +done
 +
 +while true; do
 +    read -p "Masque de sous-réseau: " NETMASK
 +    if validate_ip "$NETMASK"; then break; fi
 +    echo "Masque de sous-réseau invalide, veuillez entrer une valeur correcte (ex: 255.255.255.0)."
 +done
 +
 +while true; do
 +    read -p "Passerelle: " GATEWAY
 +    if validate_ip "$GATEWAY"; then break; fi
 +    echo "Passerelle invalide, veuillez entrer une adresse valide (ex: 192.168.1.1)."
 +done
 +
 +read -p "Domaine: " DOMAIN
 +
 +while true; do
 +    read -p "Serveur DNS 1: " DNS1
 +    if validate_ip "$DNS1"; then break; fi
 +    echo "Serveur DNS invalide, veuillez entrer une adresse valide (ex: 8.8.8.8)."
 +done
 +
 +while true; do
 +    read -p "Serveur DNS 2: " DNS2
 +    if validate_ip "$DNS2"; then break; fi
 +    echo "Serveur DNS invalide, veuillez entrer une adresse valide (ex: 8.8.4.4)."
 +done
 +
 +while true; do
 +    read -p "Serveur DNS 3: " DNS3
 +    if validate_ip "$DNS3"; then break; fi
 +    echo "Serveur DNS invalide, veuillez entrer une adresse valide (ex: 1.1.1.1)."
 +done
 +
 +cat > /etc/network/interfaces <<EOF
 +auto $NET_INTERFACE
 +iface $NET_INTERFACE inet static
 +    address $IP_ADDR
 +    netmask $NETMASK
 +    gateway $GATEWAY
 +    dns-nameservers $DNS1 $DNS2 $DNS3
 +    dns-search $DOMAIN
 +EOF
 +
 +echo -e "nameserver $DNS1\nnameserver $DNS2\nnameserver $DNS3" > /etc/resolv.conf
 +
 +# Demande du nouveau nom d'hôte
 +read -p "Nouveau nom de la machine: " NEW_HOSTNAME
 +echo "$NEW_HOSTNAME" > /etc/hostname
 +hostnamectl set-hostname "$NEW_HOSTNAME"
 +
 +# Modification des mots de passe
 +echo "Modification des mots de passe"
 +for user in root npoirier; do
 +    while true; do
 +        read -s -p "Nouveau mot de passe pour $user: " PASS1
 +        echo
 +        read -s -p "Confirmez le mot de passe pour $user: " PASS2
 +        echo
 +        if [ "$PASS1" == "$PASS2" ]; then
 +            echo "$user:$PASS1" | chpasswd
 +            break
 +        else
 +            echo "Les mots de passe ne correspondent pas. Veuillez réessayer."
 +        fi
 +    done
 +done
 +
 +# Proposition de suppression du script
 +read -p "Voulez-vous supprimer ce script après exécution ? (o/n): " DELETE_SCRIPT
 +if [[ "$DELETE_SCRIPT" =~ ^[Oo]$ ]]; then
 +    rm -- "$0"
 +fi
 +
 +# Nettoyage du système
 +echo "Nettoyage du système..."
 +history -c
 +find /home -name .bash_history -type f -exec rm -f {} \;
 +rm -f /root/.bash_history
 +rm -rf /tmp/*
 +rm -rf /var/tmp/*
 +rm -rf /var/log/*
 +rm -rf /var/cache/apt/*
 +
 +# Redémarrage du système
 +echo "Redémarrage du système en cours..."
 +sleep 3
 +reboot
 +</code>
projets/scriptdeconfigurationlinux.txt · Dernière modification : de nicolaspoirier