fastoch13

Untitled

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