status=235/CHOWN в systemd
Код 235/CHOWN встречается только у сокетов: systemd не сумел выставить владельца или группу для созданного сокета согласно SocketUser= и SocketGroup=. Причина всегда в этих двух параметрах либо в пути, где создаётся файл сокета.
Вероятные причины
По порядку: сверху то, что встречается чаще.
-
Пользователя или группы из
SocketUser=/SocketGroup=не существуетИмена разбираются в момент создания сокета. Опечатка или отсутствующая группа дают отказ.
-
Файл сокета создаётся на файловой системе без поддержки владельцев
На некоторых смонтированных разделах смена владельца невозможна, и шаг не проходит.
Диагностика
Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.
Смотреть надо журнал сокета, а не службы: код приходит от unit-файла сокета.
journalctl -xeu myapp.socket --no-pager -n 20Действующее описание сокета целиком, включая drop-in.
systemctl cat myapp.socketРешение
Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.
SocketUser=/SocketGroup= не существует- Почему происходит
- Имена разбираются в момент создания сокета. Опечатка или отсутствующая группа дают отказ.
- Как проверить
-
Посмотрите значения и проверьте их в системе.
systemctl cat myapp.socket | grep -iE "socketuser|socketgroup" getent passwd app; getent group app
- Как исправить
- Создайте пользователя и группу или исправьте имена в unit-файле сокета.
- Почему происходит
- На некоторых смонтированных разделах смена владельца невозможна, и шаг не проходит.
- Как проверить
-
Посмотрите, где создаётся сокет, и тип файловой системы.
systemctl cat myapp.socket | grep -i listen findmnt -T /run
- Как исправить
- Создавайте сокет в /run: это tmpfs, где владельцы работают как положено.
Пример вывода
В сокете указана несуществующая группа. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.
× myapp.socket - Socket for myapp
Active: failed (Result: exit-code) since Mon 2026-09-15 08:40:11 MSK; 1s ago
systemd[1]: myapp.socket: Failed at step CHOWN: No such process
systemd[1]: myapp.socket: Failed to listen on sockets: No such process
systemd[1]: myapp.socket: Failed with result 'exit-code'.
Связанные ошибки
- status=216/GROUP в systemd Код 216/GROUP: systemd не смог определить или сменить группу из Group= или SupplementaryGroups=. Причины и как проверить.
- status=217/USER в systemd Код 217/USER означает, что systemd не смог определить или сменить пользователя из User=. Разбор причин: пользователя нет, имя недопустимо, конфликт с DynamicUser.
- Сокет без Listen: unit загружен, но ничего не слушает В .socket не задан ни один параметр Listen…= — сокет не принимает соединения. Как объявить адрес прослушивания.
- Puma слушает сокет, а веб-сервер получает отказ доступа Разъём между приложением и веб-сервером: сокет создаётся с правами приложения, читает его другой пользователь.
- uWSGI: веб-сервер не может писать в сокет nginx получает отказ доступа к сокету uWSGI: права и владелец сокета задаются в описании приложения.
- Служба не видит, кто обратился по сокету Сведения о вызывающем не приходят: передача учётных данных через сокет включается отдельно.
- Сокет с каналом: права не позволяют писать Служба принимает данные через канал, но клиенты не могут в него писать: владелец и права задаются в сокете.
- Фильтр почты недоступен почтовой службе: сокет и группы Почтовая служба не может обратиться к фильтру: сокет создан с правами, недоступными её пользователю.
Источники
-
systemd.exec(5)
235 EXIT_CHOWN: не удалось изменить владельца сокета. Используется только для unit-файлов сокетов. -
systemd.socket(5)
Параметры SocketUser=, SocketGroup=, SocketMode=. -
Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
Воспроизведено на .socket с SocketGroup=нет-такой-группы.