Учётная запись службы сервера 1С:Предприятия 8.3: как узнать, сменить и выдать права
Содержание
Сервер 1С:Предприятия 8.3 в Windows работает как служба «Агент сервера 1С:Предприятия 8.3» (в списке служб — 1C:Enterprise 8.3 Server Agent (x86-64)). По умолчанию установщик запускает её от локального пользователя USR1CV8, которого сам же и создаёт. В Linux тот же смысл у пользователя usr1cv8 и группы grp1cv8. Проверить, под каким пользователем работает сервер 1С на конкретной машине, быстрее всего в оснастке services.msc: колонка «Вход от имени».
От этой учётной записи зависит многое. С её правами работают процессы ragent, rmngr и rphost, а значит, и весь серверный код конфигурации: выгрузка файлов, обмены через каталоги, внешние обработки, COM-объекты. Если сервер «не видит» сетевую папку или служба перестала стартовать после смены пароля, причина почти всегда здесь.
Какую учётную запись создаёт установщик и почему именно её
При установке сервера на Windows мастер предлагает установить его как службу и выбрать пользователя. Вариантов три:
- 👤 Создать пользователя USR1CV8 — вариант по умолчанию. Мастер заводит локальную учётную запись с паролем, который вы вводите на этом же шаге.
- 🏢 Существующий пользователь — обычно доменная учётная запись, созданная администратором заранее.
- ⚙️ Локальная система (LocalSystem) — служба получает максимальные права на компьютере. Так ставят на тестовых стендах, на рабочем сервере — не стоит.
USR1CV8 — обычный локальный пользователь без прав администратора. Ему хватает доступа к каталогу кластера и файлам платформы, но он не может зайти на сетевые ресурсы других компьютеров. Для одиночного сервера с базами на SQL Server этого достаточно. Как только сервер должен писать в общую папку на файловом сервере, нужна доменная учётная запись.
В Linux пакет сервера создаёт системного пользователя usr1cv8. Его домашний каталог содержит данные кластера: по умолчанию это /home/usr1cv8/.1cv8/1C/1cv8.
Как проверить, от какого пользователя запущен сервер 1С
Способов несколько. Они дают одинаковый ответ, выбирайте удобный.
Через оснастку «Службы»
- Нажмите
Win+R, введитеservices.msc. - Найдите в списке
1C:Enterprise 8.3 Server Agent(если на сервере стоят несколько версий платформы, служб будет несколько). - Посмотрите колонку «Вход от имени». Там будет
.\USR1CV8,DOMAIN\svc_1cили «Локальная система».
Из командной строки
Команда sc qc показывает конфигурацию службы, строка 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
Колонка PathName заодно покажет путь к ragent.exe, порт агента (-port 1540) и каталог кластера (-d).
По процессам в диспетчере задач
Откройте диспетчер задач, вкладку «Подробности». Найдите ragent.exe, rmngr.exe и rphost.exe и посмотрите колонку «Имя пользователя». Все три должны работать от одного пользователя. Если rphost.exe нет — значит, рабочие процессы ещё не запускались: ни один клиент не подключался.
В Linux
ps -o user,pid,cmd -C ragent,rmngr,rphost
Для служб под systemd имя юнита зависит от версии платформы и способа установки. Найти его проще поиском:
systemctl list-units --type=service | grep -i 1c
В файле юнита строка User= укажет пользователя запуска.
Смена пользователя службы сервера 1С
Сменить учётную запись приходится в трёх случаях: сервер должен получить доступ к сетевым папкам, политика безопасности запрещает локальные учётки, или служба работает от LocalSystem и это надо исправить.
Остановка службы агента обрывает сеансы всех пользователей на всех базах этого сервера. Делайте это вне рабочего времени и предупредите пользователей заранее.
Порядок действий:
- Подготовьте учётную запись. Для домена — отдельного пользователя только под 1С, например
svc_1c, с паролем без срока действия. - Выдайте ей права на каталог кластера и файлы платформы (подробно — в разделе про права ниже). Без этого шага служба либо не запустится, либо поднимется с пустым кластером.
- Остановите службу агента сервера.
- Поменяйте учётную запись в свойствах службы (через графический интерфейс или командой).
- Запустите службу и проверьте в консоли администрирования, что кластер и информационные базы на месте.
Командой sc config
sc stop "1C:Enterprise 8.3 Server Agent (x86-64)"
sc config "1C:Enterprise 8.3 Server Agent (x86-64)" obj= "DOMAIN\svc_1c" password= "Пароль"
sc start "1C:Enterprise 8.3 Server Agent (x86-64)"
После obj= и password= пробел обязателен, без него команда вернёт ошибку синтаксиса.
Пароль в командной строке остаётся в истории консоли и может попасть в журналы аудита. Для разовой смены надёжнее графический способ.
sc config не всегда выдаёт пользователю право «Вход в качестве службы». После смены командой проверьте его в secpol.msc.
Настройка учётной записи в services.msc
Графический способ удобнее: Windows сама проверит пароль при запуске и выдаст нужное право входа.
- Откройте
services.msc, дважды щёлкните по службе агента сервера 1С. - На вкладке «Общие» нажмите «Остановить».
- Перейдите на вкладку «Вход в систему».
- Выберите «С учётной записью», нажмите «Обзор» и найдите пользователя. Для локального пишите
.\USR1CV8, для доменного —DOMAIN\svc_1c. - Дважды введите пароль и нажмите «Применить».
- Windows сообщит, что учётной записи предоставлено право «Вход в качестве службы». Это нормально.
- Вернитесь на вкладку «Общие» и нажмите «Запустить».
На вкладке «Восстановление» той же службы стоит выставить «Перезапуск службы» для первого и второго сбоя. Тогда после аварийного падения агент поднимется сам.
Если на сервере несколько служб 1С (разные версии платформы или несколько кластеров на разных портах), меняйте учётку у каждой. Удобнее, когда все они работают от одного пользователя.
Права и группы, без которых служба не работает
Минимальный набор прав для учётной записи сервера 1С:
| Что | Где настраивается | Какой доступ |
|---|---|---|
| Право «Вход в качестве службы» | secpol.msc → «Локальные политики» → «Назначение прав пользователя» | Пользователь в списке права |
Каталог кластера (по умолчанию C:\Program Files\1cv8\srvinfo) | Свойства папки → «Безопасность» | Полный доступ |
Каталог платформы C:\Program Files\1cv8\8.3.x.xxxx\bin | Свойства папки → «Безопасность» | Чтение и выполнение |
Каталог файлов лицензий C:\ProgramData\1C\licenses | Свойства папки → «Безопасность» | Чтение (для программных лицензий сервера) |
| Группа «Пользователи журналов производительности» | lusrmgr.msc или оснастка домена | Членство |
Членство в группе «Пользователи журналов производительности» позволяет серверу читать счётчики производительности Windows. Эти данные кластер использует, чтобы оценивать загрузку рабочего сервера.
Права администратора компьютера службе не нужны. Если без них что-то не работает , ищите конкретную папку или ресурс, к которому не хватает доступа, и выдавайте право точечно.
Если в строке подключения к SQL Server используется аутентификация Windows, учётная запись службы должна иметь логин на сервере СУБД и права на базы. При аутентификации SQL Server (логин и пароль в свойствах информационной базы) пользователь службы для СУБД значения не имеет.
Для доменной учётной записи отключите срок действия пароля. Иначе через 42 дня (значение политики Windows по умолчанию) служба перестанет запускаться. Для локального пользователя это делается одной командой PowerShell:
Set-LocalUser -Name "USR1CV8" -PasswordNeverExpires $true
Доступ к файлам и сетевым папкам с сервера 1С
Самая частая жалоба: «с моего компьютера файл открывается, а из 1С — нет». Причина в том, что серверный код выполняется не под пользователем, который нажал кнопку, а под учётной записью службы.
Что из этого следует:
- 📁 Путь
C:\Обменв серверном коде — это папка на сервере 1С, а не на компьютере пользователя. - 🌐 Подключённые сетевые диски (
Z:\) службе не видны. Используйте полный UNC-путь вида\\fileserver\exchange\. - 🔒 Локальный
USR1CV8не пройдёт на сетевую папку другого компьютера в домене. Нужна доменная учётная запись, которой выданы права и на общий ресурс, и на файловую систему (NTFS). - 🗂️ Временные файлы сервер пишет в профиль своего пользователя, например
C:\Users\USR1CV8\AppData\Local\Temp. Если диск C: заполнен или профиль повреждён, ломаются выгрузки и формирование печатных форм в файл. - 📊 COM-объекты (Excel, Word) на сервере работают от имени службы. Под LocalSystem и под пользователем без профиля Office часто не запускается вовсе.
Быстрый способ проверить доступ ровно так, как его видит служба, — запустить командную строку от имени этого пользователя:
runas /user:DOMAIN\svc_1c cmd
dir \\fileserver\exchange
Если dir выдаёт «Отказано в доступе», 1С получит то же самое. Права нужно добавлять на обоих уровнях: в разрешениях общего ресурса и на вкладке «Безопасность» папки.
Каталоги обмена удобнее держать на дисках самого сервера 1С. Тогда сетевые права не нужны, а скорость обмена выше.
Принцип наименьших привилегий для сервера 1С
Сервер 1С выполняет код конфигурации и внешних обработок. Всё, что может учётная запись службы, может и этот код: читать файлы, удалять их, запускать программы. Поэтому учётная запись с лишними правами — прямой риск.
Что запрещено делать на рабочем сервере:
- ❌ Запускать службу под LocalSystem. Код 1С получит полный контроль над компьютером.
- ❌ Использовать учётную запись администратора домена «чтобы точно всё работало». Ошибка во внешней обработке или вредоносный файл получат права на всю сеть.
- ❌ Использовать личную учётку сотрудника. Он уволится или сменит пароль — сервер остановится.
- ❌ Давать один и тот же пароль службе 1С и другим сервисам.
Что делать:
- ✅ Отдельная учётная запись только для 1С, без интерактивного входа на другие компьютеры.
- ✅ Права только на нужные каталоги: кластер, платформа, лицензии, папки обмена.
- ✅ Пароль длинный и без срока действия, храните его в менеджере паролей администраторов.
- ✅ Профили безопасности кластера в консоли администрирования серверов 1С. Они ограничивают, к каким каталогам, COM-объектам и внешним компонентам может обращаться код конкретной информационной базы, независимо от прав службы.
Отдельная учётная запись ещё и упрощает аудит: в журналах Windows и файлового сервера сразу видно, что действие выполнил сервер 1С.
Почему служба 1С не запускается после смены пользователя
После смены учётной записи сначала смотрите «Просмотр событий» (eventvwr.msc) → «Журналы Windows» → «Система», источник Service Control Manager. Там будет точный код ошибки.
Если сразу после запуска служба останавливается без внятной ошибки, загляните в технологический журнал или в журнал регистрации кластера в каталоге srvinfo. Там агент записывает, к какому файлу не получил доступа.
В Linux диагностика идёт через journalctl:
journalctl -u <имя юнита сервера 1С> -n 50
Типичная причина отказа после ручных манипуляций — владелец каталога кластера сменился на root. Вернуть его можно командой chown -R usr1cv8:grp1cv8 /home/usr1cv8/.1cv8, предварительно остановив службу.