Приложение 11. Установка SYNCTHING на сервере SCADA
Создание учетной записи пользователя для синхронизации проекта
1. Открываем панель управления

2. Запускаем приложение «Политика безопасности»

3. Вводим пароль и переходим по дереву на ветку «Пользователи»

4. Создаем пользователя по желанию, например «enteksync»

5. Пользователь создан.
Для активации пользователя необходимо создать ему пароль, без пароля пользователя не удастся активировать

6. Пароль можно задавать любой, даже не очень сложный, единственное ограничение не менее 8 символов. Если пароль не соотвтетствует политике паролей, выскочит ошибка, но на нее внимания - можно не обращать ( мы под правами SUDO и нам «можно иногда»)
7. Теперь необходимо совершить «таинство активации» вновь созданного пользователя в системе.
a. Необходимо завершить сеанс текущего пользователя

b. Авторизуемся в системе с новыми учетными данными

c. Происходит инициализация нового пользователя

d. Мы в системе. Новый пользователь имеет ограниченные права и запускается в режиме защиты системы от утечки данных и ограничения возможностей по управлению системой вплоть до запрета доступа к данным, сохраненным под другими учетными записями.

e. Вновь выходим из системы и переходим к дальнейшей настройке системы

8. Производим установку SYNCTHING. Имеется 2 способа: по инструкции с сайта syncthing.net (стандартный и понятно простой) и, как обычно, наш, заковыристый. Приступаем:
a. Необходимо скачать с сайта syncthing.net установочный пакет дистрибутива нашей программы

b. Сохраняем файл по ссылке, на рабочем компьютере, можно иметь с собой на флешке, у нас, как правило, нет интернета на объекте.
c. Копируем полученный файл в папку целевого сервера. Желательно в папке /home пользователя entek создать специальную временную папку для распаковки и установки программы. Например использовать в качестве рабочей папки выбрать папку «Загрузки»

d. Переходим в консоль и работаем дальше там под привилегированной учетной записью с вводом пароля.

e. Запускаем MidnightCommander и переходим в каталог, куда скопировали установочный пакет

f. Выполняем команду:

g. Полученный архив распакуется в папке получаем весь пакет для установки
h. Переходим внутрь распакованной папки и проверяем возможность запуска программы командой ./syncthing
i. У нас должен запуститься браузер и интерфейс настройки синхронизации. Ничего не делаем, просто закрываем браузер, поздравляю, у нас есть рабочая программа.
j. Необходимо произвести последующие манипуляции для возможности запуска программы в качестве службы Астра Линукс. В командной строке необходимо ввести следующую команду sudo cp syncthing /usr/local/bin
Итогом наших действий будет появление исполняемого файла в каталоге /usr/local/bin исполняемого файла syncthing, теперь программа внесена в локальное окружение команд пользователя и ее можно запускать из любой папки.
k. Установочные файлы больше не нужны и их можно удалить командой rm -rf syncthing*, находясь в папке, которую мы выбрали в качестве временной.

l. Теперь необходимо создать юнит для запуска программы в качестве демона(сервиса)
В командной строке пишем: sudo nano /etc/systemd/system/syncthing@.service
И вставляем в открытый файл следующее содержимое
[Unit]
Description=Syncthing - Open Source Continuous File Synchronization for %I
Documentation=man:syncthing(1)
After=network.target
Wants=syncthing-inotify@.service
[Service]
User=%i
ExecStart=/usr/local/bin/syncthing -no-browser -no-restart -logflags=0
Restart=on-failure
SuccessExitStatus=3 4
RestartForceExitStatus=3 4
[Install]
WantedBy=multi-user.target
m. Сохраняем файл, ставим юнит под контроль системного демона командами:
systemctl enable syncthing@enteksync
systemctl start syncthing@enteksync
n. Проверяем работу сервиса командой
systemctl status syncthing@enteksync
В выводе не должно быть ошибок, как на иллюстрации

o. Можно переходить к настройкам программы через GUI веб интерфейса
PS: Указанный метод не единственный и возможны коллизии, можно рассмотреть иной способ создания демона, для этого необходимо просто на этапе создания файла демона внести другую запись в описание сервиса, да и сам демон создать с жесткой привязкой к пользователю и группе. Например, вот так:
sudo nano /etc/systemd/system/syncthing.service
а в сам файл вставляем следующие строки
[Unit]
Description=Syncthing - Open Source Continuous File Synchronization for enteksync
Documentation=man:syncthing(1)
After=network.target
Wants=syncthing-inotify@.service
[Service]
User=enteksync
Group=enteksync
ExecStart=/usr/bin/syncthing -no-browser -no-restart -logflags=1
Restart=on-failure
SuccessExitStatus=3 4
RestartForceExitStatus=3 4
[Install]
WantedBy=multy-user.target
Сохраняем файл и прописываем его в систему:
systemctl enable syncthing
systemctl start syncthing
Проверяем работу сервиса командой
systemctl status syncthing
В указанном примере добавлен вывод диагностики (-logflags=1), что при диагностике поможет выявить основные проблемы запуска сервиса в автоматическом режиме, после окончательной настройки эту полезную функцию необходимо отключить и перезаписать файл с другим ключом (-logflags=0)