Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- LOG_FILE="/home/siindus/Documents/debug_log.txt"
- CONFIG_FILE="/home/siindus/Documents/network_config.cfg"
- log() {
- echo "$(date "+[%Y-%m-%d %H:%M:%S]") $1" >> "$LOG_FILE"
- }
- exec 2>>"$LOG_FILE"
- log "Démarrage de config_test.sh"
- SUDO_PASSWORD="polindus"
- EXPECTED_PASSWORD="polindus"
- 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
- }
- password=$(yad --entry --title="ACCES" \
- --text="Mot de passe Admin" --text-align=center \
- --hide-text --width=100 --height=100 --fixed --undecorated --skip-taskbar --ontop)
- if [ $? -ne 0 ]; then
- log "Accès annulé."
- 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é"
- DEFAULT_MACHINE_NAME="Excellence"
- DEFAULT_IP_ADDRESS="169.254.200.200"
- DEFAULT_SUBNET_MASK="255.255.0.0"
- DEFAULT_GATEWAY="169.254.1.1"
- DEFAULT_DNS1="10.34.52.9"
- DEFAULT_DNS2="10.34.52.13"
- DEFAULT_HOMEPAGE="file://$PWD/instructions.html"
- 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"
- while true; do
- config_values=$(yad --form --title="Configuration du Réseau" --fixed --center --undecorated --skip-taskbar --ontop \
- --text="Configuration du poste" --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="Gateway":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."
- 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 "Erreur : champs vides"
- continue
- fi
- break
- done
- log "Configuration réseau valide"
- 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 "Hostname configuré : $machine_name"
- for iface in $(ifconfig | grep -o "^[a-z0-9]*" | grep -v "lo"); do
- log "Configuration de $iface"
- sudo ifconfig "$iface" "$ip_address" netmask "$subnet_mask" up
- sudo route add default gw "$gateway"
- log "Interface $iface configurée avec $ip_address/$subnet_mask et passerelle $gateway"
- 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"
Advertisement
Add Comment
Please, Sign In to add comment