set -euo pipefail

USER_NAME="lobanov_v"
REPO_URL="https://git.lobanoffhomecloud.ru/lobanov_v/easy_ssh---zabbix_agent2.git"
CLONE_DIR="/tmp/easy_ssh---zabbix_agent2"

echo "==> Создание пользователя..."

if ! id "$USER_NAME" &>/dev/null; then
    useradd -m -s /bin/bash "$USER_NAME"
    echo "Пользователь $USER_NAME создан."
else
    echo "Пользователь $USER_NAME уже существует."
fi

echo "==> Добавление пользователя в группу sudo..."

if getent group sudo >/dev/null; then
    usermod -aG sudo "$USER_NAME"
elif getent group wheel >/dev/null; then
    usermod -aG wheel "$USER_NAME"
fi

echo "==> Настройка sudo без пароля..."

echo "$USER_NAME ALL=(ALL:ALL) NOPASSWD:ALL" > /etc/sudoers.d/$USER_NAME
chmod 440 /etc/sudoers.d/$USER_NAME
visudo -cf /etc/sudoers.d/$USER_NAME

echo "==> Установка git..."

if ! command -v git >/dev/null; then
    apt-get update
    apt-get install -y git
fi

echo "==> Клонирование репозитория..."

rm -rf "$CLONE_DIR"
git clone "$REPO_URL" "$CLONE_DIR"

echo "==> Настройка SSH-ключей..."

mkdir -p "/home/$USER_NAME/.ssh"

cp "$CLONE_DIR/authorized_keys" "/home/$USER_NAME/.ssh/authorized_keys"

chmod 700 "/home/$USER_NAME/.ssh"
chmod 600 "/home/$USER_NAME/.ssh/authorized_keys"

chown -R "$USER_NAME:$USER_NAME" "/home/$USER_NAME/.ssh"

echo "==> Замена sshd_config..."

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak.$(date +%F-%H%M%S)

cp "$CLONE_DIR/sshd_config" /etc/ssh/sshd_config


echo "==> Проверка конфигурации SSH..."
sshd -t

echo "==> Перезапуск службы SSH..."
systemctl restart ssh

echo "Готово."

echo
echo "========================================"
echo "Настройка завершена успешно."
echo "Пользователь: $USER_NAME"
echo "Репозиторий: $REPO_URL"
echo "========================================"
