Учётная запись службы сервера 1С: проверка в Windows и Linux и права

· 9 мин

Содержание

Узнать, под каким пользователем запущен сервер 1С, проще всего по свойствам его службы. В Windows откройте services.msc, найдите службу агента сервера 1С:Предприятия 8.3 и посмотрите вкладку «Вход в систему». В Linux выполните ps -eo user,pid,cmd | grep -E 'ragent|rmngr|rphost' — первая колонка и есть учётная запись. По умолчанию это локальный пользователь USR1CV8 (в Windows) или usr1cv8 (в Linux).

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

Из каких процессов состоит сервер 1С и кто их запускает

Сервер 1С:Предприятия 8.3 — это не одна программа, а связка из трёх видов процессов:

  • 🟢 ragent — агент сервера. Запускается как служба Windows или как служба systemd в Linux. Слушает порт 1540.
  • 🔵 rmngr — менеджер кластера. Порт 1541 у кластера по умолчанию.
  • 🟣 rphost — рабочие процессы, в которых выполняется код конфигурации. Работают на портах из диапазона, заданного в свойствах рабочего сервера (по умолчанию 1560–1591).

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

Именно поэтому типичная путаница выглядит так: бухгалтер в своей Windows видит папку \\fs\обмен, а обработка, выполняемая на сервере, — нет. Код работает в rphost, а у USR1CV8 прав на эту папку не было никогда.

Вариант установкиУчётная запись по умолчаниюГде видно
Windows, «Установить как сервис»локальный USR1CV8свойства службы, Диспетчер задач
Windows, служба переведена на доменДОМЕН\имясвойства службы
Windows, запуск ragent вручную из консолипользователь, открывший консольДиспетчер задач
Linux (deb/rpm, systemd)usr1cv8, группа grp1cv8ps, systemctl show

Как посмотреть пользователя службы сервера 1С в Windows

Через оснастку «Службы»

  1. Нажмите Win+R, введите services.msc.
  2. Найдите службу с именем вида 1C:Enterprise 8.3 Server Agent (x86-64). Если установлено несколько версий платформы, служб может быть несколько — смотрите ту, что в состоянии «Выполняется».
  3. Откройте её свойства, вкладка «Вход в систему».
  4. Если выбран переключатель «С учётной записью», в поле указано имя: .\USR1CV8, ДОМЕН\srv1c и т.п. Если выбран вариант «С системной учётной записью» — служба работает от LocalSystem.

На вкладке «Общие» там же видна строка «Исполняемый файл». В ней путь к ragent.exe, номер версии платформы и параметры: каталог кластера после -d, порты после -port и -regport.

Командой sc и PowerShell

Когда серверов несколько или доступа к рабочему столу нет, удобнее командная строка. Сначала узнайте точное имя службы:

sc query state= all | findstr /i "1C:Enterprise"

Затем запросите её конфигурацию. Нужная строка — SERVICE_START_NAME:

sc qc "1C:Enterprise 8.3 Server Agent (x86-64)"

В PowerShell всё делается одной командой, сразу для всех служб 1С:

Get-CimInstance Win32_Service -Filter "Name LIKE '1C%'" |
  Select-Object Name, StartName, State, PathName

Колонка StartName — учётная запись, PathName — путь к ragent.exe с ключами запуска. Для удалённого сервера добавьте -ComputerName имя_сервера (нужны права администратора на нём).

Через Диспетчер задач и tasklist

Проверка по процессам полезна, когда служба одна, а rphost ведут себя странно. Откройте Диспетчер задач, вкладку «Подробности», и при необходимости включите колонку «Имя пользователя» (правый клик по заголовку → «Выбрать столбцы»). У ragent.exe, rmngr.exe и всех rphost.exe имя должно совпадать.

То же из консоли:

tasklist /v /fi "imagename eq rphost.exe"

Если rphost.exe работают под другим пользователем, чем служба, значит на машине запущен второй экземпляр сервера — например, кто-то стартовал ragent вручную из командной строки для отладки. Такой экземпляр живёт до выхода этого пользователя из системы.

Проверка пользователя сервера 1С в Linux

По списку процессов

Самый быстрый способ:

ps -eo user,pid,ppid,cmd | grep -E 'ragent|rmngr|rphost' | grep -v grep

Первая колонка — пользователь. В стандартной установке это usr1cv8. Колонка ppid показывает, что rmngr и rphost порождены агентом. Ключ -d в командной строке ragent указывает каталог кластера, обычно это /home/usr1cv8/.1cv8/1C/1cv8.

Проверить саму учётную запись и её группы:

id usr1cv8
getent passwd usr1cv8

По unit-файлу systemd

В актуальных версиях платформы сервер устанавливается как шаблонный unit вида srv1cv8-8.3.XX.XXXX@.service, а экземпляр по умолчанию запускается как srv1cv8-8.3.XX.XXXX@default. Найти точное имя:

systemctl list-units --all | grep -i 1cv8

Посмотреть, от кого служба стартует:

systemctl show -p User -p Group srv1cv8-8.3.XX.XXXX@default
systemctl cat srv1cv8-8.3.XX.XXXX@default

В выводе systemctl cat ищите строки User= и Group=. Если там пусто, а процессы всё равно работают под usr1cv8, учётная запись задаётся внутри скрипта запуска — тогда ориентируйтесь на ps, он показывает фактическое состояние.

На старых установках с init-скриптом /etc/init.d/srv1cv83 systemd-unit может отсутствовать. Там тоже надёжнее всего ps.

Правку unit-файла делайте через systemctl edit, а не в файле из каталога платформы: при установке новой версии он будет перезаписан.

Что показывает консоль администрирования кластера

В консоли администрирования серверов 1С:Предприятия (оснастка MMC в Windows) или утилите rac имени пользователя ОС вы не найдёте. Это частое недоразумение.

Что консоль показывает на самом деле:

  • 👤 «Администраторы» центрального сервера и кластера — это учётные записи самого кластера 1С. К пользователям Windows или Linux они не привязаны (кроме случая, когда администратору включена аутентификация ОС).
  • 🔢 «Рабочие процессы» — список rphost с колонкой PID, портом и состоянием.

PID — мостик между консолью и операционной системой. Возьмите PID рабочего процесса из консоли и найдите его в Диспетчере задач или в ps:

ps -o user,pid,cmd -p 12345

Через rac то же самое. Сначала получите идентификатор кластера, затем список процессов, в выводе есть поле pid:

rac localhost:1545 cluster list
rac localhost:1545 process list --cluster=<uuid_кластера>

Порт 1545 — порт сервера администрирования ras, он должен быть запущен. Если не уверены в параметрах, смотрите встроенную справку rac help process.

Такой путь нужен, когда на одной машине работает несколько кластеров на разных портах и непонятно, какой из них принадлежит какой службе.

Проблемы с правами: что ломается и как найти причину

Большинство проблем с правами — следствие того, что USR1CV8 локальный и ничего не знает о сети. Ниже типичные симптомы.

Диагностика: выберите симптом

Как сменить учётную запись службы в Windows

  1. Создайте доменного или локального пользователя под службу. Пароль — бессрочный, иначе через 42 дня (типичная доменная политика) служба не стартует.
  2. Выдайте ему полный доступ к каталогу кластера (путь из ключа -d) и к каталогу с лицензиями.
  3. В свойствах службы на вкладке «Вход в систему» укажите учётную запись и пароль. Оснастка сама даст право «Вход в качестве службы».
  4. Перезапустите службу.

Перезапуск службы агента обрывает сеансы всех пользователей всех баз кластера. Делайте это после окончания рабочего дня, предупредив пользователей, и не во время регламентных операций — обновления или выгрузки.

После смены проверьте пользователя rphost.exe в Диспетчере задач и зайдите в любую базу. Затем запустите операцию, которая раньше падала: выгрузку в сетевую папку или вход через аутентификацию ОС. Если служба не стартует, откройте журнал событий Windows, раздел «Система»: ошибка входа службы там фиксируется с кодом и именем учётной записи.

Изоляция процессов: несколько серверов на одной машине

Если на одной машине работают два кластера (например, рабочий и тестовый, на разных портах и, возможно, разных версиях платформы), разумно запускать их под разными учётными записями. Тогда сбой или неудачный код в тестовой базе не получит доступа к каталогу рабочего кластера.

В Windows для этого служб устанавливают несколько, каждой назначают свою учётную запись и свой каталог -d. В Linux используют отдельные экземпляры шаблонного unit с переопределённым пользователем и каталогом данных.

Безопасность учётной записи службы: что настроить

Учётная запись службы — фактически учётная запись всего кода, который выполняется на сервере 1С, включая внешние обработки, которые загружают пользователи. Права, выданные ей «на всякий случай», получает любой, кто может запустить такую обработку.

Что рекомендуется:

  • ✅ Отдельный пользователь только под 1С, без интерактивного входа на сервер.
  • ✅ Права — только на каталог кластера, каталог лицензий, временный каталог и конкретные сетевые папки обмена.
  • ✅ Пароль хранится у администратора, не у пользователей 1С.
  • ✅ В Linux — штатный usr1cv8 без пароля для входа и без sudo.

Чего делать не стоит:

  • ❌ Запускать службу от LocalSystem или включать её пользователя в группу «Администраторы». Это даёт коду конфигурации полный доступ к серверу.
  • ❌ Использовать личную учётную запись администратора. После смены пароля или увольнения служба не запустится.
  • ❌ Запускать сервер в Linux от root.
Аудит учётной записи сервера 1С
Выполнено: 0 / 6

Частые вопросы о пользователе сервера 1С

Можно ли узнать пользователя службы из самой 1С, не заходя на сервер?
Напрямую — нет, такой настройки в конфигурации нет. Разработчик может выполнить на сервере обработку, которая выведет переменную окружения USERNAME (Windows) или USER (Linux), но это требует прав на запуск внешних обработок.
Чем учётная запись службы отличается от администратора кластера?
Учётная запись службы — пользователь операционной системы, от него работают процессы. Администратор кластера — запись внутри 1С, она нужна для входа в консоль администрирования. Пароль одного не связан с паролем другого.
Влияет ли пользователь службы на подключение к MS SQL или PostgreSQL?
Только если в параметрах базы данных не указан логин СУБД и используется доменная авторизация. Тогда к MS SQL подключается именно учётная запись службы, и ей нужен логин на SQL-сервере.
Куда пропала учётная запись USR1CV8 после переустановки платформы?
Установщик создаёт её только если выбран запуск сервера как службы с этим пользователем. Если при установке указали другого пользователя или запуск под системной учётной записью, USR1CV8 создана не будет.
Нужно ли менять пользователя при обновлении платформы?
Нет. При установке новой версии служба создаётся заново, проверьте вкладку «Вход в систему» и каталог -d у новой службы, чтобы они совпадали с прежними.