#Что означает ошибка
217/USER
В unit указан пользователь, которого нет в системе. Создайте его или исправьте User=.
#Причины и признаки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Нет пользователя | Сообщение о запрете доступа возникает у конкретной учётной записи; сравните её права и права нужного файла, функции либо сетевого ресурса. | Создайте |
| Опечатка | В случае «systemd: status=217/USER — не найден пользователь службы» проверьте наличие причины «Опечатка» по исходному действию и связанному сообщению; переходить к исправлению стоит после её подтверждения. | Исправьте. Конкретное действие зависит от проверки причины «Опечатка», описанной в пошаговой инструкции. |
| Нет NSS | В случае «systemd: status=217/USER — не найден пользователь службы» проверьте наличие причины «Нет NSS» по исходному действию и связанному сообщению; переходить к исправлению стоит после её подтверждения. | Проверьте. Конкретное действие зависит от проверки причины «Нет NSS», описанной в пошаговой инструкции. |
| Динамический пользователь | Сообщение о запрете доступа возникает у конкретной учётной записи; сравните её права и права нужного файла, функции либо сетевого ресурса. | Настройте. Конкретное действие зависит от проверки причины «Динамический пользователь», описанной в пошаговой инструкции. |
#Пошаговое решение
- Определите причинуВ журнале службы выполните
systemctl status имя.service -lиjournalctl -u имя.service -b -n 50 --no-pager, найдитеstatus=217/USER. Обычно systemd не смог переключиться на пользователя из директивы User, поэтому проверьте фактический unit черезsystemctl cat имя.service. - Выполните подходящее исправлениеПосмотрите строку
User=/Group=и выполнитеgetent passwd фактический_пользовательиgetent group фактическая_группа. Если учётной записи не существует, проверьте, должен ли её создавать пакет, контейнер или служба; не меняйте User на root ради обхода. - Проверьте другие возможные причиныЕсли пакет использует
DynamicUser=yes, проверьте правильность этой настройки и каталоговStateDirectory/RuntimeDirectory; ручное создание статического пользователя может быть ошибкой. При обычной службе создавайте системного пользователя только по документации приложения, назначая минимальные права на нужные каталоги. - Убедитесь в результатеПосле точечной правки unit выполните
sudo systemctl daemon-reloadиsudo systemctl start имя.service; убедитесь, что 217/USER исчез и программа работает под нужной учётной записью черезsystemctl show имя.service -p User. Если видитеPermission denied, проверьте разрешения отдельно, не ослабляя их глобально.
#Если проблема осталась
Если «systemd: status=217/USER — не найден пользователь службы» повторяется, сохраните время, состояние подключения и точный текст ошибки. Не меняйте сразу несколько настроек — иначе станет трудно понять, какое действие повлияло на результат.