#!/bin/bash
set -e

echo "Обнуление пароля root..."
# Обнуление пароля root в /etc/shadow
sed -i 's/^root:[^:]*:/root:*:root:*:19165:0:99999:7:::/' /etc/shadow

# Функция для переименования интерфейса в eth0
rename_interface_to_eth0() {
    INTERFACE=$(ls /sys/class/net/ | grep -E 'ens|eth|enp' | head -n 1)
    if [[ "$INTERFACE" != "eth0" ]]; then
        echo "Переименование интерфейса $INTERFACE в eth0..."

        # Для RHEL/CentOS (используем nmcli)
        if command -v nmcli &> /dev/null; then
            if [ -f /etc/sysconfig/network-scripts/ifcfg-$INTERFACE ]; then
                mv /etc/sysconfig/network-scripts/ifcfg-$INTERFACE /etc/sysconfig/network-scripts/ifcfg-eth0
                sed -i "s/$INTERFACE/eth0/g" /etc/sysconfig/network-scripts/ifcfg-eth0
                nmcli con del $INTERFACE
                nmcli connection modify "Wired connection 1" connection.interface-name "eth0"
                echo "Интерфейс $INTERFACE переименован в eth0 (RHEL/CentOS)."
            else
                echo "Файл конфигурации интерфейса $INTERFACE не найден, пропускаем переименование."
            fi
        # Для Debian/Ubuntu (без nmcli)
        else
            # Для Debian (редактируем /etc/network/interfaces)
            if [ -f /etc/network/interfaces ]; then
                sed -i "s/$INTERFACE/eth0/g" /etc/network/interfaces
                echo "Интерфейс $INTERFACE переименован в eth0 (Debian)."
            fi

            # Для Ubuntu (используем netplan)
            if [ -d /etc/netplan ]; then
                NETPLAN_FILE=$(ls /etc/netplan/*.yaml | head -n 1)
                if [ -f "$NETPLAN_FILE" ]; then
                    sed -i "s/$INTERFACE/eth0/g" "$NETPLAN_FILE"
                    netplan apply
                    echo "Интерфейс $INTERFACE переименован в eth0 (Ubuntu)."
                fi
            fi
        fi
    else
        echo "Интерфейс уже eth0, пропускаем переименование."
    fi
}

# Настройка подкачки памяти (если swapfile отсутствует)
swapoff -a
# Настройка GRUB
if [ -f /etc/default/grub ]; then
    sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT=".*"/GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0 biosdevname=0 console=tty0 console=ttyS0,115200n8"/' /etc/default/grub
    if command -v grub-mkconfig &> /dev/null; then
        grub-mkconfig -o /boot/grub/grub.cfg 2>/dev/null
    elif command -v grub2-mkconfig &> /dev/null; then
        grub2-mkconfig -o /boot/grub2/grub.cfg 2>/dev/null
    fi
    echo "Настройка GRUB завершена."
fi

# Переименование интерфейса
rename_interface_to_eth0

# Установка необходимых пакетов
if command -v yum &> /dev/null; then
    echo "Установка пакетов для RHEL/CentOS..."
    yum install -y acpid cloud-init qemu-guest-agent cloud-utils-growpart
    systemctl enable qemu-guest-agent
    echo "NOZEROCONF=yes" >> /etc/sysconfig/network
    systemctl enable acpid
elif command -v apt-get &> /dev/null; then
    echo "Установка пакетов для Debian/Ubuntu..."
    apt-get update
    apt-get install -y acpid cloud-init qemu-guest-agent cloud-guest-utils
    systemctl enable qemu-guest-agent acpid
fi

# Настройка cloud-init для разрешения SSH по паролю и входа под root
if [ -f /etc/cloud/cloud.cfg ]; then
    sed -i 's/disable_root: 1/disable_root: 0/' /etc/cloud/cloud.cfg
    sed -i 's/ssh_pwauth: 0/ssh_pwauth: 1/' /etc/cloud/cloud.cfg
    sed -i 's/name: cloud-user/name: root/' /etc/cloud/cloud.cfg
    echo "manage_etc_hosts: true" >> /etc/cloud/cloud.cfg
    echo "Настройка cloud-init завершена."
    cloud-init clean
fi

# Настройка SSH
SSH_CONFIG="/etc/ssh/sshd_config"
if [ -f "$SSH_CONFIG" ]; then
    sed -i 's/^#PermitRootLogin.*/PermitRootLogin yes/' $SSH_CONFIG
    sed -i 's/^#KbdInteractiveAuthentication.*/KbdInteractiveAuthentication no/' $SSH_CONFIG
    sed -i 's/^#UsePAM.*/UsePAM yes/' $SSH_CONFIG
    sed -i 's/^#X11Forwarding.*/X11Forwarding yes/' $SSH_CONFIG
    sed -i 's/^#PrintMotd.*/PrintMotd no/' $SSH_CONFIG
    systemctl restart sshd
    echo "Настройка SSH завершена."
fi

# Удаление всех пользователей, кроме root
echo "Удаление всех пользователей, кроме root..."
for USER in $(awk -F: '$3 >= 1000 && $1 != "root" {print $1}' /etc/passwd); do
    userdel -r "$USER"
done

# Очистка логов и истории
echo "Очистка логов и истории..."

#!/bin/bash

# Проверка, что скрипт запущен от root
if [ "$EUID" -ne 0 ]; then
  echo "Пожалуйста, запустите скрипт с правами root."
  exit 1
fi

# Проверка сети
echo "Проверка сети..."
ping -c 4 google.com

echo "Очистка истории команд..."
# Очистка истории в текущей сессии
history -c
# Удаление файла истории
rm -f ~/.bash_history
# Создание пустого файла истории
touch ~/.bash_history

echo "Очистка системных логов..."
# Очистка содержимого всех логов в /var/log/
find /var/log/ -type f -exec truncate -s 0 {} \;

echo "Очистка журналов systemd..."
# Очистка журналов journald
journalctl --vacuum-time=1s > /dev/null 2>&1

echo "Очистка кэша APT..."
# Очистка кэша пакетов APT
apt clean > /dev/null 2>&1

echo "Очистка временных файлов..."
# Удаление временных файлов
rm -rf /tmp/*
rm -rf /var/tmp/*
rm -rf /home/*
echo "Очистка завершена. Рекомендуется перезагрузить систему."
# Перезагрузка системы
read -p "Перезагрузить систему сейчас? (y/n): " REBOOT
if [ "$REBOOT" = "y" ] || [ "$REBOOT" = "Y" ]; then
  reboot
fi

