Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Chemin du fichier de log et fichier de configuration
- LOG_FILE="/home/siindus/Documents/debug_log.txt"
- CONFIG_FILE="/home/siindus/Documents/network_config.cfg"
- # Fonction pour écrire des logs avec horodatage
- log() {
- echo "$(date "+[%Y-%m-%d %H:%M:%S]") $1" >> "$LOG_FILE"
- }
- # Redirection des erreurs vers le fichier de log
- exec 2>>"$LOG_FILE"
- log "Début du script config_test.sh"
- # Mot de passe sudo et mot de passe attendu
- SUDO_PASSWORD="polindus"
- EXPECTED_PASSWORD="polindus"
- # Fonction pour convertir un masque en notation CIDR
- mask_to_prefix() {
- local mask=$1
- local prefix=0
- for octet in $(echo $mask | tr "." " "); do
- case $octet in
- 255) prefix=$((prefix + 8));;
- 254) prefix=$((prefix + 7));;
- 252) prefix=$((prefix + 6));;
- 248) prefix=$((prefix + 5));;
- 240) prefix=$((prefix + 4));;
- 224) prefix=$((prefix + 3));;
- 192) prefix=$((prefix + 2));;
- 128) prefix=$((prefix + 1));;
- 0) ;;
- *) log "Masque de sous-réseau invalide : $mask"; return 1;;
- esac
- done
- echo $prefix
- }
- # Demander le mot de passe avec un champ de saisie sécurisé
- password=$(yad --entry --title="ACCES" \
- --text="Mot de passe Admin" --text-align=center \
- --hide-text --width=300 --height=100 --fixed --undecorated --skip-taskbar --ontop)
- if [ $? -ne 0 ]; then
- log "Accès annulé par l'utilisateur."
- exit 0
- fi
- if [ "$password" != "$EXPECTED_PASSWORD" ]; then
- yad --error --title="Erreur" --text="Mot de passe erroné." --button="OK:1" --undecorated --skip-taskbar --ontop
- log "Mot de passe erroné"
- exit 1
- fi
- log "Mot de passe validé"
- # Valeurs par défaut
- DEFAULT_MACHINE_NAME="Excellence"
- DEFAULT_IP_ADDRESS="192.168.1.100"
- DEFAULT_SUBNET_MASK="255.255.255.0"
- DEFAULT_GATEWAY="192.168.1.1"
- DEFAULT_DNS1="8.8.8.8"
- DEFAULT_DNS2="8.8.4.4"
- DEFAULT_HOMEPAGE="http://example.com"
- if [ -f "$CONFIG_FILE" ]; then
- source "$CONFIG_FILE"
- log "Chargement du fichier de configuration existant"
- else
- MACHINE_NAME="$DEFAULT_MACHINE_NAME"
- IP_ADDRESS="$DEFAULT_IP_ADDRESS"
- SUBNET_MASK="$DEFAULT_SUBNET_MASK"
- GATEWAY="$DEFAULT_GATEWAY"
- DNS1="$DEFAULT_DNS1"
- DNS2="$DEFAULT_DNS2"
- HOMEPAGES="$DEFAULT_HOMEPAGE"
- log "Utilisation des valeurs par défaut"
- fi
- SUBNET_PREFIX=$(mask_to_prefix "$SUBNET_MASK")
- if [ $? -ne 0 ]; then
- log "Erreur lors de la conversion du masque en préfixe."
- exit 1
- fi
- log "Préfixe de sous-réseau calculé : /$SUBNET_PREFIX"
- # Boucle pour afficher et valider le formulaire YAD
- while true; do
- config_values=$(yad --form --title="Configuration du Réseau" --fixed --center --undecorated --skip-taskbar --ontop \
- --text="Configuration réseau" --text-align=center \
- --field="Nom de la machine" "$MACHINE_NAME" \
- --field="Adresse IP" "$IP_ADDRESS" \
- --field="Masque de sous-réseau":RO "$SUBNET_MASK" \
- --field="Passerelle":RO "$GATEWAY" \
- --field="DNS1":RO "$DNS1" \
- --field="DNS2":RO "$DNS2" \
- --field="Homepage URL" "$HOMEPAGES")
- if [ $? -ne 0 ] || [ -z "$config_values" ]; then
- log "Configuration annulée par l'utilisateur."
- exit 1
- fi
- IFS="|" read -r machine_name ip_address subnet_mask gateway dns1 dns2 homepages <<< "$config_values"
- if [ -z "$machine_name" ] || [ -z "$ip_address" ]; then
- yad --error --title="Erreur" --text="Tous les champs doivent être remplis." --button="OK:1" --undecorated --skip-taskbar --ontop
- log "Champs requis manquants"
- continue
- fi
- break
- done
- log "Les informations réseau ont été validées"
- echo "$SUDO_PASSWORD" | sudo -S hostnamectl set-hostname "$machine_name"
- if [ $? -ne 0 ]; then
- log "Erreur lors de la configuration du hostname."
- exit 1
- fi
- log "Nom de la machine défini : $machine_name"
- for iface in $(ifconfig | grep -o "^[a-z0-9]*" | grep -v "lo"); do
- sudo ifconfig "$iface" "$ip_address" netmask "$subnet_mask" up
- sudo route add default gw "$gateway"
- log "Configuration réseau appliquée : $iface - $ip_address/$subnet_mask"
- done
- cat <<EOF > "$CONFIG_FILE"
- MACHINE_NAME="$machine_name"
- IP_ADDRESS="$ip_address"
- SUBNET_MASK="$subnet_mask"
- GATEWAY="$gateway"
- DNS1="$dns1"
- DNS2="$dns2"
- HOMEPAGES="$homepages"
- EOF
- log "Configuration sauvegardée dans $CONFIG_FILE"
- # Lancer le script de kiosk
- DISPLAY=:0 nohup bash /home/siindus/Documents/kiosk_start.sh >> "$LOG_FILE" 2>&1 &
- log "Script de kiosk démarré"
Advertisement
Add Comment
Please, Sign In to add comment