#!/bin/bash # Description: Скрипт для корректной загрузки и установки программы RPIVirusScanner # Author: Шафеев "Thiflict" Марат # Date: 2026-04-14 # Так как скрипт не тестировался должным образом, необходимо запросить у пользователя о его намерениях продолжать выполнение скрипта. read -p "ВНИМАНИЕ!!! Данный скрипт установки не тестировался должным образом! Это значит, что скрипт может поломать некоторые конфиги ClamAV и Samba КАК МИНИМУМ! Для продолжения введите: 'i understand all the risks and want to continue'. Это будет означать, что вы понимаете риски и хотите продолжить выполнение программы! " answer answer=${answer,,} if [[ "$answer" != "i understand all the risks and want to continue" ]]; then echo "Неправильно набрана фраза для продолжения. Отменяю..." exit 0 fi echo "Выполняю..." # Обновление списков пакетов и зарузка зависимостей apt update; apt install openjdk-21-jdk gpiod libgpiod-dev clamav clamav-daemon ntfs-3g usbmount samba -y; # Загрузка нужных пактов # Настройка либы для взаимодействия с GPIO echo "Подготовка библиотек взаимодействия с GPIO..." sudo usermod -a -G gpio,spi,i2c $USER; newgrp gpio; # Настройка ClamAV echo "Настройка ClamAV" { echo "PrivateMirror https://clamav-mirror.ru"; echo "PrivateMirror https://mirror.truenetwork.ru/clamav/"; echo "PrivateMirror http://mirror.truenetwork.ru/clamav/"; echo "ScriptedUpdates no"; } >> /etc/clamav/freshclam.conf; rm /var/lib/clamav/freshclam.dat; freshclam -vvv; CONFIG_FILE="/etc/clamav/clamd.conf"; # Путь к файлу конфига NEW_VALUE_MT="10"; # Новое значение MaxThreads NEW_VALUE_MF="10M"; # Новое значение MaxFileSize NEW_VALUE_MS="30M"; # Новое значение MaxScanSize cp "$CONFIG_FILE" "$CONFIG_FILE.bak"; # Создание бекапа конфига sed -i -E " s/^(MaxThreads[[:space:]]+).*/\1$NEW_VALUE_MT/ s/^(MaxFileSize[[:space:]]+).*/\1$NEW_VALUE_MF/ s/^(MaxScanSize[[:space:]]+).*/\1$NEW_VALUE_MS/ " "$CONFIG_FILE"; # Изменение конфига # Загрузка временных файлов echo "Загрузка необходиых временных файлов..." rm -rf /tmp/rpivs; mkdir /tmp/rpivs; wget https://static1.thiflict.ru/raspberrypi_virus_scanner/v2.0/smb_conf -o /tmp/rpivs/smb.conf wget https://static1.thiflict.ru/raspberrypi_virus_scanner/v2.0/rpivirusscanner.jar -o /tmp/rpivs/rpivirusscanner.jar; wget https://static1.thiflict.ru/raspberrypi_virus_scanner/v2.0/rpi_virus_scanner_service -o /tmp/rpivs/rpi_virus_scanner.service; # Настройка Samba echo "Выполняется настройка Samba" systemctl stop smbd systemctl disable smbd # Установка программы echo "Установка программы..." rm -rf /opt/thiflict-dev/rpi-virus-scanner/ mkdir -p /opt/thiflict-dev/rpi-virus-scanner/ mv /tmp/rpivs/rpivirusscanner.jar /opt/thiflict-dev/rpi-virus-scanner/; # Создание демона echo "Создание демона RPIVirusScanner..." mv /tmp/rpivs/rpi_virus_scanner.service /etc/systemd/system/; systemctl daemon-reload; systemctl enable rpi_virus_scanner.service; # Авторство: echo "RaspberryPi успешно установлен! Рекомендуется перезагрузить устройство."; echo " "; echo "==== Об авторе: ===="; echo "Репозиторий проекта: https://git.ds1.thiflict.ru/Shafeev-CourseWork/Practice-Part"; echo "Телеграм-канал: https://t.me/Thiflict_tg"; echo "YouTube канал: https://youtube.com/@Thiflict";