#!/bin/bash # ============================================================ # ЗАДАНИЕ 3. Настройка HQ-CLI (Linux / РЕД ОС 8) # 4. Доверие корневому сертификату ЦС (HQ-SRV) # 6. Подключение виртуального pdf-принтера как принтера по умолчанию # 9. Агент Кибер Бэкап — ДЕЛАЕТСЯ ВРУЧНУЮ (MANUAL.md) # ============================================================ # --- Проверка прав root --- if [[ $EUID -ne 0 ]]; then echo "Запустите скрипт с правами root (sudo bash hq-cli.sh)" exit 1 fi # ================= ПЕРЕМЕННЫЕ (заполните перед запуском) ================= EXAM_TZ="Europe/Moscow" # проверить на экзамене # --- 4. Доверие корневому сертификату --- CA_ROOT_FILE="" # путь к скопированному корневому сертификату # (root.crt копируется с HQ-SRV вручную — MANUAL.md) CA_ANCHORS_DIR="/etc/pki/ca-trust/source/anchors" # ПРОВЕРИТЬ на РЕД ОС 8 CA_TRUST_CMD="update-ca-trust" # ПРОВЕРИТЬ команду обновления хранилища # --- 6. Принтер по умолчанию (виртуальный pdf с HQ-SRV) --- CUPS_SERVER="" # адрес HQ-SRV (без префикса) PRINTER_NAME="pdf" # имя принтера, как он опубликован на HQ-SRV CLIENT_PRINTER="pdf_printer" # локальное имя подключения на HQ-CLI CUPS_PACKAGE="cups" # клиенту нужны утилиты lpadmin/lpstat # ============ Проверка заполнения переменных ============ MISSING=() for NAME in CA_ROOT_FILE CUPS_SERVER EXAM_TZ; do [[ -z "${!NAME}" ]] && MISSING+=("$NAME") done if [[ ${#MISSING[@]} -gt 0 ]]; then echo "Заполните переменные в начале скрипта: ${MISSING[*]}" exit 1 fi echo "=== Настройка HQ-CLI, задание 3 ===" # --- 1. Доверие корневому сертификату ЦС --- echo "--- Доверие CA ---" if [[ ! -f "$CA_ROOT_FILE" ]]; then echo "ДЕЛАЕТСЯ ВРУЧНУЮ: файла $CA_ROOT_FILE нет — скопируйте root.crt с HQ-SRV" echo " scp root@<адрес HQ-SRV>:$CA_ROOT_FILE " exit 1 fi cp "$CA_ROOT_FILE" "$CA_ANCHORS_DIR/" "$CA_TRUST_CMD" && echo "Хранилище сертификатов обновлено" \ || echo "ПРОВЕРИТЬ: $CA_TRUST_CMD не выполнился" echo "Проверка: curl -I https://web.au-team.irpo (не должен писать про сертификат)" # --- 2. Принтер по умолчанию --- echo "--- Подключение принтера — $CLIENT_PRINTER <- $CUPS_SERVER:$PRINTER_NAME ---" dnf install -y "$CUPS_PACKAGE" || echo "ПРОВЕРИТЬ: пакет $CUPS_PACKAGE не установился" if lpstat -p 2>/dev/null | grep -qw "$CLIENT_PRINTER"; then echo "Принтер $CLIENT_PRINTER уже подключён" else lpadmin -p "$CLIENT_PRINTER" \ -v "ipp://$CUPS_SERVER:631/printers/$PRINTER_NAME" -E \ && echo "Принтер добавлен" \ || echo "ПРОВЕРИТЬ: lpadmin не смог добавить принтер (CUPS на HQ-SRV слушает 631?)" fi # Назначить принтер по умолчанию (повторно безопасно) lpoptions -d "$CLIENT_PRINTER" >/dev/null && echo "Принтер по умолчанию: $CLIENT_PRINTER" lpstat -p -d # --- 3. Агент Кибер Бэкап — вручную --- echo "" echo "ДЕЛАЕТСЯ ВРУЧНУЮ (MANUAL.md): установить агент с функциями узла" echo "хранилища, подключить к серверу HQ-SRV, создать /backup и выбрать" echo "её как устройство хранения. Директорию /backup можно создать сейчас:" mkdir -p /backup && echo " Директория /backup создана" # --- 4. Часовой пояс --- timedatectl set-timezone "$EXAM_TZ" echo "" echo "=== Самопроверка на HQ-CLI ===" lpstat -p -d echo "" echo "Дополнительные проверки вручную:" echo " curl -I https://web.au-team.irpo (без предупреждений о сертификате)" echo " curl -I https://docker.au-team.irpo (без предупреждений + логин WEB/P@ssw0rd на web)" echo " echo test | lp -d $CLIENT_PRINTER (печать в pdf-принтер)" echo " ls /var/spool/cups-pdf на HQ-SRV (pdf появился у принтера?)"