diff --git a/install_script.sh b/install_script.sh new file mode 100644 index 0000000..a380366 --- /dev/null +++ b/install_script.sh @@ -0,0 +1,73 @@ +#!/bin/bash +# Description: Скрипт для корректной загрузки и установки программы RPIVirusScanner +# Author: Шафеев "Thiflict" Марат +# Date: 2026-04-14 + +# Так как скрипт не тестировался должным образом, необходимо запросить у пользователя о его намерениях продолжать выполнение скрипта. +read -p "ВНИМАНИЕ!!! Данный скрипт установки не тестировался должным образом! Это значит, что скрипт может поломать некоторые конфиги ClamAV КАК МИНИМУМ! Для продолжения введите: '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/rpivirusscanner_v1.0.jar -o /tmp/rpivs/rpivirusscanner.jar; +wget https://static1.thiflict.ru/raspberrypi_virus_scanner/v1.0/rpi_virus_scanner_service -o /tmp/rpivs/rpi_virus_scanner.service; + +# Установка программы +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"; \ No newline at end of file