Files
desenvolvimento_sitemas_seg…/deploy.sh
T
2026-10-13 16:43:48 +00:00

116 lines
4.2 KiB
Bash

#!/usr/bin/env bash
# ==============================================================================
# FatecSeg Corp - Script de Instalação e Deploy Automatizado
# Disciplina: Desenvolvimento Seguro
# ==============================================================================
set -e
DEST_DIR="/var/www/html/fatecseg"
TAR_URL="https://git.tmferreira.tec.br/tiago.ferreira/desenvolvimento_sitemas_seg_info/raw/branch/main/fatecseg.tar.gz"
TEMP_TAR="/tmp/fatecseg.tar.gz"
DB_USER="root"
DB_PASS="sploitme"
# Cores para o terminal
GREEN='\033[0;32m'
BLUE='\033[0;34m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m'
echo -e "${BLUE}======================================================${NC}"
echo -e "${BLUE} FatecSeg Corp - Deploy e Configuração Automática ${NC}"
echo -e "${BLUE}======================================================${NC}"
# 1. Verificar se é root
if [ "$EUID" -ne 0 ]; then
echo -e "${RED}[!] Erro: Este script precisa ser executado com sudo/root.${NC}"
echo -e " Execute: sudo bash $0 ou curl ... | sudo bash"
exit 1
fi
# 2. Garantir que o serviço MySQL esteja ativo e com socket configurado
echo -e "\n${YELLOW}[1/5] Verificando serviço MySQL...${NC}"
if command -v service >/dev/null 2>&1; then
service mysql start >/dev/null 2>&1 || true
fi
# Ajuste de socket do Metasploitable 3
if [ -S /run/mysql-default/mysqld.sock ] && [ ! -S /var/run/mysqld/mysqld.sock ]; then
mkdir -p /var/run/mysqld
ln -sf /run/mysql-default/mysqld.sock /var/run/mysqld/mysqld.sock >/dev/null 2>&1 || true
fi
echo -e "${GREEN}[✓] Serviço MySQL verificado.${NC}"
# 3. Limpar diretório anterior e recriar
echo -e "\n${YELLOW}[2/5] Preparando diretório ${DEST_DIR}...${NC}"
rm -rf "$DEST_DIR"
mkdir -p "$DEST_DIR"
echo -e "${GREEN}[✓] Diretório preparado.${NC}"
# 4. Baixar pacote atualizado
echo -e "\n${YELLOW}[3/5] Baixando pacote do portal FatecSeg Corp...${NC}"
echo -e "URL: ${TAR_URL}"
if command -v curl >/dev/null 2>&1; then
curl -fsSL "$TAR_URL" -o "$TEMP_TAR"
elif command -v wget >/dev/null 2>&1; then
wget -q --show-progress "$TAR_URL" -O "$TEMP_TAR"
else
echo -e "${RED}[X] Erro: curl ou wget não encontrado.${NC}"
exit 1
fi
echo -e "${GREEN}[✓] Download concluído.${NC}"
# 5. Extrair pacote e ajustar permissões
echo -e "\n${YELLOW}[4/5] Extraindo arquivos e ajustando permissões...${NC}"
tar -xzf "$TEMP_TAR" -C "$DEST_DIR"
rm -f "$TEMP_TAR"
rm -f "$DEST_DIR"/data/*.sqlite >/dev/null 2>&1 || true
chown -R www-data:www-data "$DEST_DIR" 2>/dev/null || true
chmod -R 755 "$DEST_DIR"
chmod -R 777 "$DEST_DIR/data"
echo -e "${GREEN}[✓] Arquivos extraídos e permissões configuradas.${NC}"
# 6. Configurar o banco de dados MySQL
echo -e "\n${YELLOW}[5/5] Configurando banco de dados MySQL...${NC}"
DB_OK=false
if command -v mysql >/dev/null 2>&1 || command -v mariadb >/dev/null 2>&1; then
MYSQL_BIN=$(command -v mysql || command -v mariadb)
# 1ª tentativa: Metasploitable 3 (root / sploitme em 127.0.0.1)
if $MYSQL_BIN -h 127.0.0.1 -u "$DB_USER" -p"$DB_PASS" < "$DEST_DIR/database.sql" >/dev/null 2>&1; then
DB_OK=true
# 2ª tentativa: root sem senha via socket
elif $MYSQL_BIN -u "$DB_USER" < "$DEST_DIR/database.sql" >/dev/null 2>&1; then
DB_OK=true
# 3ª tentativa: root com sploitme via socket
elif $MYSQL_BIN -u "$DB_USER" -p"$DB_PASS" < "$DEST_DIR/database.sql" >/dev/null 2>&1; then
DB_OK=true
fi
fi
# Fallback via PHP CLI se necessário
if [ "$DB_OK" = false ] && command -v php >/dev/null 2>&1; then
if php "$DEST_DIR/setup_db.php" >/dev/null 2>&1; then
DB_OK=true
fi
fi
if [ "$DB_OK" = true ]; then
echo -e "${GREEN}[✓] Banco de dados configurado e populado com 12 usuários no MySQL!${NC}"
else
echo -e "${YELLOW}[!] Inicialize o banco pelo navegador: http://localhost/fatecseg/setup_db.php${NC}"
fi
# Identificar IP da máquina
IP_LOCAL=$(hostname -I 2>/dev/null | awk '{print $1}' || echo "localhost")
if [ -z "$IP_LOCAL" ]; then IP_LOCAL="localhost"; fi
echo -e "\n${GREEN}======================================================${NC}"
echo -e "${GREEN} Deploy concluído com sucesso! ${NC}"
echo -e "${GREEN}======================================================${NC}"