#!/bin/bash set -e # ============================================================ # Preparação de VM Debian 13 # # - Configura hostname # - Configura domínio # - Detecta interfaces diretamente do sistema # - Recria /etc/network/interfaces do ZERO # - Permite DHCP ou IP estático por interface # - Limpa histórico # - Desliga a máquina ao final # ============================================================ # ------------------------------------------------------------ # Verifica root # ------------------------------------------------------------ if [ "$EUID" -ne 0 ]; then echo "ERRO: execute este script como root." exit 1 fi # ============================================================ # HOSTNAME / DOMÍNIO # ============================================================ echo echo "============================================================" echo " CONFIGURAÇÃO DO HOST" echo "============================================================" echo while true; do read -rp "Novo nome da máquina: " NEW_HOSTNAME if [ -n "$NEW_HOSTNAME" ]; then break fi echo "O nome da máquina não pode ficar vazio." done while true; do read -rp "Domínio (ex.: fatec.local): " NEW_DOMAIN if [ -n "$NEW_DOMAIN" ]; then break fi echo "O domínio não pode ficar vazio." done FQDN="${NEW_HOSTNAME}.${NEW_DOMAIN}" # ------------------------------------------------------------ # Configura hostname # ------------------------------------------------------------ echo "$NEW_HOSTNAME" > /etc/hostname hostnamectl set-hostname "$NEW_HOSTNAME" # ------------------------------------------------------------ # Recria /etc/hosts # ------------------------------------------------------------ cat > /etc/hosts </dev/null || echo "desconhecido") echo " Interface: $IFACE" echo " MAC: $MAC" echo done # ============================================================ # RECRIA /etc/network/interfaces DO ZERO # ============================================================ cat > /etc/network/interfaces </dev/null || echo "desconhecido") echo echo "============================================================" echo " Interface: $IFACE" echo " MAC: $MAC" echo "============================================================" echo echo "Como deseja configurar esta interface?" echo echo " 1) DHCP" echo " 2) IP estático" echo " 3) Não configurar" echo while true; do read -rp "Opção [1/2/3]: " OPTION case "$OPTION" in 1) # ==================================================== # DHCP # ==================================================== cat >> /etc/network/interfaces <> /etc/network/interfaces <> /etc/network/interfaces fi if [ -n "$DNS" ]; then echo " dns-nameservers $DNS" >> /etc/network/interfaces fi if [ -n "$DNS_SEARCH" ]; then echo " dns-search $DNS_SEARCH" >> /etc/network/interfaces fi echo echo "$IFACE configurada com IP estático." break ;; 3) echo echo "$IFACE não será configurada." break ;; *) echo echo "Opção inválida." ;; esac done done # ============================================================ # MOSTRA CONFIGURAÇÃO FINAL # ============================================================ echo echo "============================================================" echo " CONFIGURAÇÃO FINAL" echo "============================================================" echo echo "Hostname : $NEW_HOSTNAME" echo "Domínio : $NEW_DOMAIN" echo "FQDN : $FQDN" echo echo "------------------------------------------------------------" echo "/etc/network/interfaces" echo "------------------------------------------------------------" echo cat /etc/network/interfaces echo echo "------------------------------------------------------------" # ============================================================ # LIMPA HISTÓRICO # ============================================================ echo echo "Limpando históricos..." # ------------------------------------------------------------ # Root # ------------------------------------------------------------ history -c 2>/dev/null || true rm -f /root/.bash_history rm -f /root/.zsh_history # ------------------------------------------------------------ # Outros usuários # ------------------------------------------------------------ while IFS=: read -r USERNAME _ UID _ _ HOME_DIR SHELL; do if [ "$UID" -ge 1000 ] && [ -d "$HOME_DIR" ]; then rm -f "$HOME_DIR/.bash_history" rm -f "$HOME_DIR/.zsh_history" fi done < /etc/passwd # ------------------------------------------------------------ # Remove histórico da sessão atual # ------------------------------------------------------------ unset HISTFILE export HISTFILE=/dev/null # ============================================================ # SINCRONIZA DISCO # ============================================================ sync # ============================================================ # RESULTADO # ============================================================ echo echo "============================================================" echo " CONFIGURAÇÃO CONCLUÍDA" echo "============================================================" echo echo "Hostname : $NEW_HOSTNAME" echo "FQDN : $FQDN" echo echo "A configuração de rede foi recriada do zero." echo echo "A máquina será desligada." echo # ============================================================ # DESLIGA # ============================================================ systemctl poweroff