fastoch13

Untitled

Jan 13th, 2025
38
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.03 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. LOG_FILE="/home/siindus/Documents/debug_log.txt"
  4. CONFIG_FILE="/home/siindus/Documents/network_config.cfg"
  5.  
  6. log() {
  7. echo "$(date "+[%Y-%m-%d %H:%M:%S]") $1" >> "$LOG_FILE"
  8. }
  9.  
  10. exec 2>>"$LOG_FILE"
  11.  
  12. log "Démarrage de config_test.sh"
  13.  
  14. SUDO_PASSWORD="polindus"
  15. EXPECTED_PASSWORD="polindus"
  16.  
  17. mask_to_prefix() {
  18. local mask=$1
  19. local prefix=0
  20. for octet in $(echo $mask | tr "." " "); do
  21. case $octet in
  22. 255) prefix=$((prefix + 8));;
  23. 254) prefix=$((prefix + 7));;
  24. 252) prefix=$((prefix + 6));;
  25. 248) prefix=$((prefix + 5));;
  26. 240) prefix=$((prefix + 4));;
  27. 224) prefix=$((prefix + 3));;
  28. 192) prefix=$((prefix + 2));;
  29. 128) prefix=$((prefix + 1));;
  30. 0) ;;
  31. *) log "Masque de sous-réseau invalide : $mask"; return 1;;
  32. esac
  33. done
  34. echo $prefix
  35. }
  36.  
  37. password=$(yad --entry --title="ACCES" \
  38. --text="Mot de passe Admin" --text-align=center \
  39. --hide-text --width=100 --height=100 --fixed --undecorated --skip-taskbar --ontop)
  40.  
  41. if [ $? -ne 0 ]; then
  42. log "Accès annulé."
  43. exit 0
  44. fi
  45.  
  46. if [ "$password" != "$EXPECTED_PASSWORD" ]; then
  47. yad --error --title="Erreur" --text="Mot de passe erroné." --button="OK:1" --undecorated --skip-taskbar --ontop
  48. log "Mot de passe erroné"
  49. exit 1
  50. fi
  51.  
  52. log "Mot de passe validé"
  53.  
  54. DEFAULT_MACHINE_NAME="Excellence"
  55. DEFAULT_IP_ADDRESS="169.254.200.200"
  56. DEFAULT_SUBNET_MASK="255.255.0.0"
  57. DEFAULT_GATEWAY="169.254.1.1"
  58. DEFAULT_DNS1="10.34.52.9"
  59. DEFAULT_DNS2="10.34.52.13"
  60. DEFAULT_HOMEPAGE="file://$PWD/instructions.html"
  61.  
  62. if [ -f "$CONFIG_FILE" ]; then
  63. source "$CONFIG_FILE"
  64. log "Chargement du fichier de configuration existant"
  65. else
  66. MACHINE_NAME="$DEFAULT_MACHINE_NAME"
  67. IP_ADDRESS="$DEFAULT_IP_ADDRESS"
  68. SUBNET_MASK="$DEFAULT_SUBNET_MASK"
  69. GATEWAY="$DEFAULT_GATEWAY"
  70. DNS1="$DEFAULT_DNS1"
  71. DNS2="$DEFAULT_DNS2"
  72. HOMEPAGES="$DEFAULT_HOMEPAGE"
  73. log "Utilisation des valeurs par défaut"
  74. fi
  75.  
  76. SUBNET_PREFIX=$(mask_to_prefix "$SUBNET_MASK")
  77. if [ $? -ne 0 ]; then
  78. log "Erreur lors de la conversion du masque en préfixe."
  79. exit 1
  80. fi
  81. log "Préfixe de sous-réseau calculé : /$SUBNET_PREFIX"
  82.  
  83. while true; do
  84. config_values=$(yad --form --title="Configuration du Réseau" --fixed --center --undecorated --skip-taskbar --ontop \
  85. --text="Configuration du poste" --text-align=center \
  86. --field="Nom de la machine" "$MACHINE_NAME" \
  87. --field="Adresse IP" "$IP_ADDRESS" \
  88. --field="Masque de sous-réseau":RO "$SUBNET_MASK" \
  89. --field="Gateway":RO "$GATEWAY" \
  90. --field="DNS1":RO "$DNS1" \
  91. --field="DNS2":RO "$DNS2" \
  92. --field="Homepage URL" "$HOMEPAGES")
  93.  
  94. if [ $? -ne 0 ] || [ -z "$config_values" ]; then
  95. log "Configuration annulée."
  96. exit 1
  97. fi
  98.  
  99. IFS="|" read -r machine_name ip_address subnet_mask gateway dns1 dns2 homepages <<< "$config_values"
  100.  
  101. if [ -z "$machine_name" ] || [ -z "$ip_address" ]; then
  102. yad --error --title="Erreur" --text="Tous les champs doivent être remplis." --button="OK:1" --undecorated --skip-taskbar --ontop
  103. log "Erreur : champs vides"
  104. continue
  105. fi
  106. break
  107. done
  108.  
  109. log "Configuration réseau valide"
  110.  
  111. echo "$SUDO_PASSWORD" | sudo -S hostnamectl set-hostname "$machine_name"
  112. if [ $? -ne 0 ]; then
  113. log "Erreur lors de la configuration du hostname."
  114. exit 1
  115. fi
  116. log "Hostname configuré : $machine_name"
  117.  
  118. for iface in $(ifconfig | grep -o "^[a-z0-9]*" | grep -v "lo"); do
  119. log "Configuration de $iface"
  120. sudo ifconfig "$iface" "$ip_address" netmask "$subnet_mask" up
  121. sudo route add default gw "$gateway"
  122. log "Interface $iface configurée avec $ip_address/$subnet_mask et passerelle $gateway"
  123. done
  124.  
  125. cat <<EOF > "$CONFIG_FILE"
  126. MACHINE_NAME="$machine_name"
  127. IP_ADDRESS="$ip_address"
  128. SUBNET_MASK="$subnet_mask"
  129. GATEWAY="$gateway"
  130. DNS1="$dns1"
  131. DNS2="$dns2"
  132. HOMEPAGES="$homepages"
  133. EOF
  134.  
  135. log "Configuration sauvegardée dans $CONFIG_FILE"
  136.  
Advertisement
Add Comment
Please, Sign In to add comment