Как активировать программную лицензию 1С на сервере Linux для всех пользователей?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При переходе на операционную систему Linux системные администраторы и специалисты 1С часто сталкиваются с особенностями разграничения прав доступа, которые отсутствуют или работают иначе в среде Windows. Одной из типичных проблем является активация многопользовательской программной лицензии в терминальном режиме. Пользователь видит предупреждение «недоступно получение программной лицензии доступной всем пользователям», а платформа настойчиво предлагает установить лицензию только для текущего сеанса.

В этой статье мы подробно разберем, почему возникает эта ошибка, как устроена система лицензирования 1С в Linux, и рассмотрим несколько проверенных способов решения проблемы — от простых манипуляций в графическом интерфейсе до тонкой настройки прав доступа через консоль.

Выясняем причину: почему блокируется общая лицензия?

Для того чтобы программная лицензия (файл с расширением .lic) была доступна абсолютно всем пользователям терминального сервера, платформа 1С:Предприятие должна записать её в общий каталог системы. В операционных системах семейства Linux (таких как Ubuntu, Debian, Red Hat, Astra Linux или РЕД ОС) таким каталогом по умолчанию является:

/var/1C/licenses

По умолчанию обычные пользователи терминальных сессий не имеют прав на запись в системный каталог /var и его подкаталоги. Когда вы запускаете 1С из-под обычной учетной записи и пытаетесь активировать лицензию «Для всех пользователей данного компьютера», платформа осуществляет проверку прав на запись в эту директорию. Не обнаружив нужных привилегий, система безопасности платформы блокирует эту опцию во избежание ошибок записи и предлагает сохранить файл лицензии в домашний каталог текущего пользователя, например, в ~/.1cv8/1C/1cv8/conf/.

Если согласиться на это предложение, то работать в 1С сможет только тот пользователь, под чьей учетной записью была произведена активация. Все остальные терминальные пользователи при запуске программы получат сообщение об отсутствии свободных лицензий.

Давайте подробно разберем методы, которые помогут решить эту задачу раз и навсегда.

---

Способ 1. Запуск 1С с правами суперпользователя (root)

Это самый быстрый и очевидный способ, если на вашем Linux-сервере установлена графическая оболочка (GUI) и вы имеете к ней доступ через терминальное подключение (например, по протоколу VNC, XRDP или через X11 forwarding).

Проанализируем пошаговый алгоритм действий:

  1. Откройте встроенный эмулятор терминала в вашей графической сессии Linux.
  2. Запустите клиентское приложение 1С:Предприятие от имени суперпользователя root с помощью утилиты sudo. Команда запуска зависит от версии установленной платформы и разрядности системы. Чаще всего исполняемый файл находится по стандартному пути. Выполните команду: sudo /opt/1C/v8.3/x86_64/1cv8 Если вы используете 32-битную версию платформы, путь будет выглядеть так: sudo /opt/1C/v8.3/i386/1cv8
  3. Система запросит пароль администратора. Введите его (при вводе символы отображаться не будут, это нормальное поведение безопасности Linux) и нажмите Enter.
  4. После запуска окна выбора информационных баз перейдите в Конфигуратор любой базы или запустите процесс получения лицензии напрямую при старте.
  5. Теперь при прохождении шагов мастера активации опция «Всем пользователям данного компьютера» станет активной и доступной для выбора.
  6. Завершите процедуру активации, введя регистрационный номер и пинкод. Платформа успешно создаст файл лицензии непосредственно в каталоге /var/1C/licenses, поскольку процесс запущен с максимальными привилегиями.

---

Способ 2. Активация в профиль пользователя с последующим ручным переносом

Если запустить графическое приложение напрямую от root по каким-то причинам не удается (например, из-за политик безопасности X-сервера), мы можем прибегнуть к обходному пути. Мы активируем лицензию локально, а затем вручную перенесем файл в общую папку и настроим корректные права.

Рассмотрим этот метод детально:

  1. Запустите 1С под своей обычной учетной записью пользователя.
  2. Пройдите процедуру активации программной лицензии, выбрав вариант «Только для текущего пользователя». Лицензия будет успешно получена.
  3. Откройте консоль сервера и перейдите в каталог хранения индивидуальных настроек 1С вашего пользователя. Обычно файлы лицензий сохраняются по следующему пути: ~/.1cv8/1C/1cv8/conf/ (символ ~ означает домашний каталог текущего пользователя).
  4. Убедитесь, что файл лицензии (файл с расширением .lic) находится там. Вы можете проверить это командой: ls -la ~/.1cv8/1C/1cv8/conf/
  5. Переместите созданный файл лицензии в общий системный каталог. Для этого потребуются права суперпользователя: sudo mv ~/.1cv8/1C/1cv8/conf/*.lic /var/1C/licenses/
  6. Важнейший шаг: настройка прав доступа. Если просто переместить файл, его владельцем останется ваш текущий пользователь, а у других пользователей терминала может не быть прав на чтение этого файла. Нам необходимо передать владение файлом пользователю службы 1С (традиционно это usr1cv8) и системной группе grp1cv8, а также выставить правильные права на чтение и запись. Выполните в терминале следующие команды:
    
    sudo chown -R usr1cv8:grp1cv8 /var/1C/licenses
    sudo chmod 775 /var/1C/licenses
    sudo chmod 644 /var/1C/licenses/*.lic
    

После выполнения этих команд любой пользователь, запускающий 1С на данном сервере, сможет беспрепятственно прочитать файл лицензии из общей директории.

---

Способ 3. Получение лицензии «На сервер» с клиентского компьютера под Windows

Если на вашем Linux-сервере развернута полноценная клиент-серверная архитектура (работает сервер приложений 1С:Предприятие, функционирует служба ragent), то получать лицензию непосредственно на самом сервере через графический интерфейс совсем не обязательно. Вы можете сделать это удаленно с любого рабочего места под управлением Windows.

Давайте разберем, как это работает:

  1. Запустите Конфигуратор вашей информационной базы с любого клиентского компьютера (например, под управлением ОС Windows), подключенного к вашему серверу 1С на Linux.
  2. Перейдите в меню Сервис — Получение лицензии.
  3. В открывшемся помощнике обязательно установите флажок (радиокнопку) на пункт «На компьютер сервера 1С:Предприятия».
  4. Укажите сетевое имя или IP-адрес вашего Linux-сервера, а также порт управляющего сокета (по умолчанию используется порт 1540).
  5. Введите регистрационный номер комплекта и пинкод для активации.

При таком сценарии клиентское приложение передает все данные для активации на сервер Linux. Служба ragent, запущенная от имени системного пользователя usr1cv8, сама обратится к сервису лицензирования 1С, получит файл лицензии и сохранит его в каталог /var/1C/licenses. Так как служба работает со своими штатными правами, никаких проблем с доступом к этой папке у нее не возникнет.

---

Способ 4. Консольная активация с помощью утилиты Ring

Современные версии платформы 1С:Предприятие поставляются со специализированным инструментарием для администрирования без использования графической оболочки. Для этой цели служит утилита ring.

Этот способ незаменим, если вы администрируете «чистый» Linux-сервер (minimal install) исключительно по протоколу SSH. Для автоматизации этого процесса можно использовать готовые скрипты для автоматической установки комьюнити-лицензии на сервере без графического интерфейса.

Проанализируем процесс работы с утилитой:

  1. Убедитесь, что на сервере установлена Java (JRE), так как утилита ring написана на Java и требует виртуальную машину для работы.
  2. Проверьте наличие установленного модуля лицензирования 1С. Для этого выполните команду: ring license list
  3. Выполните команду активации лицензии от имени суперпользователя sudo, передав утилите все необходимые параметры. Шаблон команды выглядит следующим образом:
    
    sudo ring license activate --reg-number <Номер_Лицензии> --pin <Пинкод> --send-to-server
    
  4. Утилита самостоятельно свяжется с сервером лицензирования 1С, сформирует файл лицензии и поместит его в общую системную директорию с корректными правами доступа.

---

Дополнительная настройка: права группы grp1cv8

Чтобы терминальные пользователи в своих сессиях могли беспрепятственно использовать общую лицензию, они должны иметь доступ к чтению каталога /var/1C/licenses. Для этого в Linux существует специальная группа пользователей grp1cv8, создаваемая автоматически при установке платформы 1С.

Настоятельно рекомендуется добавить учетные записи всех ваших терминальных пользователей в эту группу. Для этого используйте команду:

sudo usermod -aG grp1cv8 <имя_пользователя_терминала>

После добавления пользователей в группу им потребуется завершить свои текущие терминальные сеансы (разлогиниться) и зайти в систему заново, чтобы изменения прав вступили в силу.

Соблюдение этих несложных правил администрирования прав доступа в Linux позволит вам быстро настроить совместную работу пользователей с программными лицензиями 1С и избежать досадных ошибок безопасности платформы.

← На главную