Учётная запись службы сервера 1С: проверка в Windows и Linux и права
Содержание
Узнать, под каким пользователем запущен сервер 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, группа grp1cv8 | ps, systemctl show |
Как посмотреть пользователя службы сервера 1С в Windows
Через оснастку «Службы»
- Нажмите
Win+R, введитеservices.msc. - Найдите службу с именем вида
1C:Enterprise 8.3 Server Agent (x86-64). Если установлено несколько версий платформы, служб может быть несколько — смотрите ту, что в состоянии «Выполняется». - Откройте её свойства, вкладка «Вход в систему».
- Если выбран переключатель «С учётной записью», в поле указано имя:
.\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
- Создайте доменного или локального пользователя под службу. Пароль — бессрочный, иначе через 42 дня (типичная доменная политика) служба не стартует.
- Выдайте ему полный доступ к каталогу кластера (путь из ключа
-d) и к каталогу с лицензиями. - В свойствах службы на вкладке «Вход в систему» укажите учётную запись и пароль. Оснастка сама даст право «Вход в качестве службы».
- Перезапустите службу.
Перезапуск службы агента обрывает сеансы всех пользователей всех баз кластера. Делайте это после окончания рабочего дня, предупредив пользователей, и не во время регламентных операций — обновления или выгрузки.
После смены проверьте пользователя rphost.exe в Диспетчере задач и зайдите в любую базу. Затем запустите операцию, которая раньше падала: выгрузку в сетевую папку или вход через аутентификацию ОС. Если служба не стартует, откройте журнал событий Windows, раздел «Система»: ошибка входа службы там фиксируется с кодом и именем учётной записи.
Изоляция процессов: несколько серверов на одной машине
Если на одной машине работают два кластера (например, рабочий и тестовый, на разных портах и, возможно, разных версиях платформы), разумно запускать их под разными учётными записями. Тогда сбой или неудачный код в тестовой базе не получит доступа к каталогу рабочего кластера.
В Windows для этого служб устанавливают несколько, каждой назначают свою учётную запись и свой каталог -d. В Linux используют отдельные экземпляры шаблонного unit с переопределённым пользователем и каталогом данных.
Безопасность учётной записи службы: что настроить
Учётная запись службы — фактически учётная запись всего кода, который выполняется на сервере 1С, включая внешние обработки, которые загружают пользователи. Права, выданные ей «на всякий случай», получает любой, кто может запустить такую обработку.
Что рекомендуется:
- ✅ Отдельный пользователь только под 1С, без интерактивного входа на сервер.
- ✅ Права — только на каталог кластера, каталог лицензий, временный каталог и конкретные сетевые папки обмена.
- ✅ Пароль хранится у администратора, не у пользователей 1С.
- ✅ В Linux — штатный
usr1cv8без пароля для входа и без sudo.
Чего делать не стоит:
- ❌ Запускать службу от
LocalSystemили включать её пользователя в группу «Администраторы». Это даёт коду конфигурации полный доступ к серверу. - ❌ Использовать личную учётную запись администратора. После смены пароля или увольнения служба не запустится.
- ❌ Запускать сервер в Linux от
root.
Частые вопросы о пользователе сервера 1С
Можно ли узнать пользователя службы из самой 1С, не заходя на сервер?
USERNAME (Windows) или USER (Linux), но это требует прав на запуск внешних обработок.Чем учётная запись службы отличается от администратора кластера?
Влияет ли пользователь службы на подключение к MS SQL или PostgreSQL?
Куда пропала учётная запись USR1CV8 после переустановки платформы?
USR1CV8 создана не будет.Нужно ли менять пользователя при обновлении платформы?
-d у новой службы, чтобы они совпадали с прежними.