#!/bin/bash # ============================================================ # ЗАДАНИЕ 2. Настройка HQ-CLI (Linux / РЕД ОС 8) # 1. Ввод в домен — ДЕЛАЕТСЯ ВРУЧНУЮ (нужен пароль админа, MANUAL.md) # 3. Автомонтирование NFS (/mnt/nfs через autofs) # 4. chrony-клиент (сервер ISP) # 1 (п.1). Sudo для группы hq: только cat, grep, id # 9. Яндекс Браузер — попытка через dnf, иначе вручную (MANUAL.md) # ============================================================ # --- Проверка прав root --- if [[ $EUID -ne 0 ]]; then echo "Запустите скрипт с правами root (sudo bash hq-cli.sh)" exit 1 fi # ================= ПЕРЕМЕННЫЕ (заполните перед запуском) ================= EXAM_TZ="Asia/Yekaterinburg" # по заданию — Екатеринбург DOMAN="au-team.irpo" # --- 3. NFS (автомонтирование в /mnt/nfs) --- NFS_SERVER="" # адрес HQ-SRV (без префикса) AUTO_MASTER="/etc/auto.master" AUTO_FILE="/etc/auto.nfs" AUTOFS_PACKAGE="autofs" # ПРОВЕРИТЬ: пакет autofs на РЕД ОС 8 AUTOFS_SERVICE="autofs" # --- 4. chrony-клиент --- CHRONY_CONF="/etc/chrony.conf" # ПРОВЕРИТЬ путь конфига chrony CHRONY_PACKAGE="chrony" CHRONY_SERVICE="chronyd" NTP_SERVER="" # адрес ISP (без префикса) # --- 1 (п.1). Sudo для доменной группы hq: только cat, grep, id --- HQ_GROUP_NAME="hq" SUDO_COMMANDS="/usr/bin/cat, /usr/bin/grep, /usr/bin/id" SUDO_FILE="/etc/sudoers.d/hq_group" # --- 9. Яндекс Браузер --- BROWSER_PACKAGE="yandex-browser" # ПРОВЕРИТЬ: имя пакета и наличие в репозитории РЕД ОС 8 # ============ Проверка заполнения переменных ============ MISSING=() for NAME in NFS_SERVER NTP_SERVER EXAM_TZ; do [[ -z "${!NAME}" ]] && MISSING+=("$NAME") done if [[ ${#MISSING[@]} -gt 0 ]]; then echo "Заполните переменные в начале скрипта: ${MISSING[*]}" exit 1 fi echo "=== Настройка HQ-CLI, задание 2 ===" # --- 1. Ввод в домен — вручную --- echo "ДЕЛАЕТСЯ ВРУЧНУЮ: ввод в домен $DOMAN (пароль администратора запрашивается)" echo " Пошаговая инструкция: MANUAL.md, раздел 'HQ-CLI: ввод в домен samba-DC'" # --- 3. Автомонтирование NFS через autofs --- echo "--- autofs (/mnt/nfs) ---" dnf install -y "$AUTOFS_PACKAGE" || echo "ПРОВЕРИТЬ: пакет $AUTOFS_PACKAGE не установился" if ! grep -qE "^[[:space:]]*/mnt[[:space:]]+$AUTO_FILE" "$AUTO_MASTER" 2>/dev/null; then echo "/mnt $AUTO_FILE" >> "$AUTO_MASTER" echo "auto.master: добавлена строка /mnt $AUTO_FILE" fi # Файл перезаписывается целиком — дублей нет cat > "$AUTO_FILE" </dev/null; then sed -i "1i server $NTP_SERVER iburst" "$CHRONY_CONF" echo "Добавлено: server $NTP_SERVER iburst" fi systemctl enable --now "$CHRONY_SERVICE" \ || { echo "ПРОВЕРИТЬ: служба $CHRONY_SERVICE не запустилась"; systemctl status "$CHRONY_SERVICE" --no-pager; } # --- 1 (п.1). Sudo для группы hq: только cat, grep, id --- echo "--- sudo для группы $HQ_GROUP_NAME ---" # Файл перезаписывается целиком — дублей нет # ПРОВЕРИТЬ формат имени группы после ввода в домен: # getent group hq # если имя группы с суффиксом домена — заменить строку ниже на %hq@$DOMAN cat > "$SUDO_FILE" </dev/null; then echo "Браузер установлен" else echo "ДЕЛАЕТСЯ ВРУЧНУЮ: пакет $BROWSER_PACKAGE не нашёлся в репозитории." echo " Возьмите rpm из Additional.iso / локального источника и установите:" echo " dnf localinstall /путь/к/пакету.rpm (шаг отметить в отчёте)" fi # --- Часовой пояс --- timedatectl set-timezone "$EXAM_TZ" echo "" echo "=== Самопроверка на HQ-CLI ===" echo "NFS: cd /mnt/nfs && df -h ." echo "NTP:" chronyc sources 2>/dev/null echo "" echo "Дополнительные проверки вручную:" echo " sudo -l (после ввода в домен: только cat/grep/id?)" echo " chronyc tracking (источник = адрес ISP)" echo " dnf list installed | grep -i yandex"