Работа с платформой 1С:Предприятие в среде Linux имеет свои особенности, особенно когда речь идет о системе лицензирования. Одной из частых проблем, с которыми сталкиваются разработчики и администраторы, является ситуация, когда комьюнити-лицензия (лицензия для разработчиков) активирована успешно, но при запуске базы система выдает сообщение об отсутствии лицензии. В этой статье мы подробно разберем, как правильно настроить окружение, разграничить права доступа и обеспечить стабильную работу защиты 1С на Linux-системах, таких как Ubuntu и Astra Linux.
Прежде чем приступать к манипуляциям с файлами лицензий, нам необходимо убедиться, что используемая версия платформы поддерживает механизм комьюнити-лицензий. Рассмотрим этот момент подробнее. Поддержка получения лицензии через личный кабинет разработчика в автоматическом режиме полноценно реализована в версиях платформы не ниже 8.3.23.1865. Если ваша версия старше, процесс активации может завершаться ошибкой или файл лицензии будет игнорироваться системой защиты.
Также проанализируем разрядность системы. Современные дистрибутивы Linux требуют 64-битную платформу. Если вы используете 32-битную версию 1С на 64-битной ОС, убедитесь, что в системе установлены соответствующие библиотеки совместимости, иначе компоненты защиты просто не смогут инициализироваться.
Выясним причину, по которой папка /var/1c/licenses/ может оказаться пустой. Расположение файла с расширением .lic напрямую зависит от того, в каком режиме запускается база данных и под каким пользователем работает процесс.
rphost. Лицензия должна располагаться в общем каталоге /var/1c/licenses/. Проанализируем важный нюанс: владельцем этой директории и самого файла должен быть пользователь, от имени которого запущен демон сервера 1С (обычно это usr1cv8).~/.1cv8/1C/1cv8/conf/. Если вы активировали лицензию под учетной записью администратора, а запускаете базу под обычным пользователем, система ее не увидит.Разберем по шагам, как правильно выставить права доступа в терминале Linux, чтобы платформа могла беспрепятственно считывать данные защиты. Если мы работаем с серверной базой, выполним следующие команды для настройки каталога:
# Создаем директорию, если она отсутствует
sudo mkdir -p /var/1c/licenses
# Назначаем владельцем пользователя сервера 1С и его группу
sudo chown -R usr1cv8:grp1cv8 /var/1c/licenses
# Устанавливаем права на чтение и выполнение для владельца
sudo chmod -R 755 /var/1c/licenses
Для файлового варианта работы, если вы хотите, чтобы лицензия была доступна всем пользователям системы, рекомендуется также использовать путь /var/1c/licenses, но при этом необходимо явно указать платформе, где искать этот каталог. Для этого отредактируем файл conf.cfg, который обычно находится в /opt/1cv8/x86_64/8.3.XX.XXXX/conf/.
Проанализируем ситуацию, описанную в теме: лицензия «слетает» или двоится в консоли разработчика. В виртуальных машинах (например, на Ubuntu 20.04 LTS) программная лицензия жестко привязывается к характеристикам виртуального оборудования. Критически важно зафиксировать MAC-адрес сетевого адаптера в настройках гипервизора. Если MAC-адрес установлен как «динамический», то при каждой перезагрузке виртуальной машины идентификатор компьютера будет меняться, и 1С сочтет, что лицензия была перенесена на другой ПК.
Также на привязку влияют:
Если вы используете Astra Linux (особенно в режиме повышенной защищенности «Смоленск»), стандартных прав chmod может быть недостаточно. В этой ОС работает система мандатного управления доступом (PARSEC). Посмотрим на ситуацию глазами системы безопасности: даже обладая правами root, процесс может быть заблокирован, если у него неверный уровень целостности.
Убедитесь, что файлы лицензий не имеют специфических меток безопасности, ограничивающих чтение процессом 1cv8. Проверить это можно командой ls -Z. Кроме того, для корректной работы графического диалога активации в Astra Linux должны быть установлены пакеты libfontconfig1 и libfreetype6.
Иногда платформа тратит слишком много времени на поиск USB-ключа HASP, что приводит к таймауту или предложению использовать аппаратную защиту. Чтобы ускорить запуск и заставить систему сразу искать программную комьюнити-лицензию, настроим файл nethasp.ini. Нам нужно убедиться, что поиск по сети отключен, если у вас нет сетевого ключа. Найдем и установим следующие параметры:
[NH_COMMON]
NH_TCPIP = Disabled
[NH_TCPIP]
# Явное отключение широковещательного поиска
NH_USE_BCAST = Disabled
Если файл лицензии физически присутствует в папке, права настроены верно, но 1С все равно его «не видит», проблема может заключаться в отсутствии системных библиотек, необходимых для работы модуля защиты (HASP/Sentinel/Internal protection). В дистрибутивах Ubuntu 20.04 и выше часто требуется ручная установка библиотеки libenchant.
Выполним команду для установки недостающих зависимостей:
sudo apt-get update
sudo apt-get install libenchant1c2a libcanberra-gtk-module libcanberra-gtk3-module
Подводя итог, отметим: если вы видите две активации на одно и то же имя компьютера в консоли разработчика, это явный признак того, что у виртуальной машины изменился один из ключевых параметров (скорее всего, MAC-адрес или UUID). Не спешите удалять лицензию, так как повторная активация после удаления возможна только через 7 дней. Попробуйте сначала привести параметры виртуального железа в соответствие с теми, что были на момент первой активации.
Совместная настройка прав доступа, фиксация параметров виртуальной машины и установка необходимых системных библиотек позволяют успешно использовать комьюнити-лицензию 1С на Linux для целей разработки и тестирования.