SystemdDoctor
служба не работает синхронизация права

Служба синхронизации отдаёт отказ: путь модуля недоступен

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

Вероятные причины

По порядку: сверху то, что встречается чаще.

  1. Путь модуля не существует или недоступен

    Служба переходит на указанного пользователя и не может открыть путь модуля.

  2. Ограничение каталога мешает работе

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

  3. Служба запущена по сокету и путает настройки

    При запуске по обращению на сокет может использоваться другой набор настроек, чем при запуске службой напрямую.

Диагностика

Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.

Прогон службы на переднем плане: ошибки видны сразу.

sudo rsync --daemon --no-detach --config=/etc/rsyncd.conf 2>&1 | head

Сообщения службы об обращениях клиентов.

journalctl -u rsync -n 30 --no-pager

Права каталога модуля.

sudo ls -ld /srv/backup

Решение

Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.

1. Путь модуля не существует или недоступен
Почему происходит
Служба переходит на указанного пользователя и не может открыть путь модуля.
Как проверить
Посмотрите описание модулей и права пути.
sudo grep -A5 "^\[" /etc/rsyncd.conf 2>/dev/null | head -20
sudo ls -ld /srv/backup 2>/dev/null
Как исправить
Исправьте путь и права так, чтобы указанный в описании пользователь имел доступ. Каталог при этом должен существовать до запуска службы.
2. Ограничение каталога мешает работе
Почему происходит
Служба по умолчанию запирается в каталоге модуля. Символические ссылки за его пределы перестают работать.
Как проверить
Посмотрите настройку ограничения и ссылки внутри модуля.
sudo grep -iE "use chroot|munge symlinks" /etc/rsyncd.conf 2>/dev/null
sudo find /srv/backup -maxdepth 2 -type l 2>/dev/null | head
Как исправить
Либо уберите ссылки за пределы каталога, либо осознанно отключите ограничение. Отключение ослабляет защиту и делать это стоит только в закрытой сети.
3. Служба запущена по сокету и путает настройки
Почему происходит
При запуске по обращению на сокет может использоваться другой набор настроек, чем при запуске службой напрямую.
Как проверить
Посмотрите, что именно запускает службу.
systemctl is-active rsync.service rsync.socket 2>/dev/null
systemctl cat rsync.socket 2>/dev/null | grep -E "^(ListenStream|Accept)"
Как исправить
Выберите одну схему запуска: службой или по обращению на сокет. Держать включённым и то и другое означает два разных пути с разным поведением.

Пример вывода

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

rsyncd[8600]: rsync: [Receiver] chdir /srv/backup failed: Permission denied (13)
rsyncd[8600]: rsync error: errors selecting input/output files, dirs (code 3) at main.c(828)
rsyncd[8600]: rsync: connection unexpectedly closed

Связанные ошибки

Источники

  • rsyncd.conf(5)
    Описание модулей, пользователь службы и ограничение каталога.
    официальная документация, systemd 255
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
    Воспроизведено модулем с каталогом, недоступным пользователю службы.
    собственная проверка, systemd 255
    сверено 15 сентября 2026