diff --git a/conf-inicial b/conf-inicial new file mode 100644 index 0000000..de3cdec --- /dev/null +++ b/conf-inicial @@ -0,0 +1,388 @@ +#!/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 \ No newline at end of file