projets:scriptdeconfigurationlinux
Différences
Ci-dessous, les différences entre deux révisions de la page.
| projets:scriptdeconfigurationlinux [2025/02/10 21:56] – créée nicolaspoirier | projets: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 [ " | ||
| + | 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 [[ ${# | ||
| + | return 1 | ||
| + | fi | ||
| + | | ||
| + | for octet in " | ||
| + | if ! [[ " | ||
| + | return 1 | ||
| + | fi | ||
| + | if ((octet < 0 || octet > 255)); then | ||
| + | return 1 | ||
| + | fi | ||
| + | done | ||
| + | return 0 | ||
| + | } | ||
| + | |||
| + | # Régénération des certificats SSH | ||
| + | echo " | ||
| + | systemctl stop ssh | ||
| + | rm -f / | ||
| + | ssh-keygen -A | ||
| + | systemctl restart ssh | ||
| + | |||
| + | # Liste des interfaces réseau | ||
| + | echo "Liste des interfaces réseau disponibles:" | ||
| + | ip -o link show | awk -F': ' ' | ||
| + | read -p " | ||
| + | |||
| + | # Configuration réseau | ||
| + | echo " | ||
| + | while true; do | ||
| + | read -p " | ||
| + | if validate_ip " | ||
| + | echo " | ||
| + | done | ||
| + | |||
| + | while true; do | ||
| + | read -p " | ||
| + | if validate_ip " | ||
| + | echo " | ||
| + | done | ||
| + | |||
| + | while true; do | ||
| + | read -p " | ||
| + | if validate_ip " | ||
| + | echo " | ||
| + | done | ||
| + | |||
| + | read -p " | ||
| + | |||
| + | while true; do | ||
| + | read -p " | ||
| + | if validate_ip " | ||
| + | echo " | ||
| + | done | ||
| + | |||
| + | while true; do | ||
| + | read -p " | ||
| + | if validate_ip " | ||
| + | echo " | ||
| + | done | ||
| + | |||
| + | while true; do | ||
| + | read -p " | ||
| + | if validate_ip " | ||
| + | echo " | ||
| + | done | ||
| + | |||
| + | cat > / | ||
| + | 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 " | ||
| + | |||
| + | # Demande du nouveau nom d' | ||
| + | read -p " | ||
| + | echo " | ||
| + | hostnamectl set-hostname " | ||
| + | |||
| + | # Modification des mots de passe | ||
| + | echo " | ||
| + | for user in root npoirier; do | ||
| + | while true; do | ||
| + | read -s -p " | ||
| + | echo | ||
| + | read -s -p " | ||
| + | echo | ||
| + | if [ " | ||
| + | echo " | ||
| + | break | ||
| + | else | ||
| + | echo "Les mots de passe ne correspondent pas. Veuillez réessayer." | ||
| + | fi | ||
| + | done | ||
| + | done | ||
| + | |||
| + | # Proposition de suppression du script | ||
| + | read -p " | ||
| + | if [[ " | ||
| + | rm -- " | ||
| + | fi | ||
| + | |||
| + | # Nettoyage du système | ||
| + | echo " | ||
| + | history -c | ||
| + | find /home -name .bash_history -type f -exec rm -f {} \; | ||
| + | rm -f / | ||
| + | rm -rf /tmp/* | ||
| + | rm -rf /var/tmp/* | ||
| + | rm -rf /var/log/* | ||
| + | rm -rf / | ||
| + | |||
| + | # Redémarrage du système | ||
| + | echo " | ||
| + | sleep 3 | ||
| + | reboot | ||
| + | </ | ||
projets/scriptdeconfigurationlinux.txt · Dernière modification : de nicolaspoirier
