Почему происходит сбой rsync + cron с отказом в разрешении opendir?

Я пытаюсь делать еженощное внешнее резервное копирование с помощью rsync. Существует папка / media / raid1 / backup , которая должна загружаться на другой сервер каждую ночь с помощью задания cron, выполняемого от имени пользователя server_sync , которое существует на обоих серверах.

Это команда rsync:

#!/bin/bash
rsync -axz -e "ssh -p 222" --delete /media/raid1/backup/ filch:/backup_offsite --partial-dir /backup_offsite/.rsync_partial --exclude '*.old' --exclude 'old' --stop-at 06:00

При интерактивном запуске с использованием sudo -H -u server_sync rsync ... команда работает нормально. Однако задание cron каждую ночь дает сбой с этим сообщением (имена пользователей замаскированы):

X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/home/server_sync>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=server_sync>
Date: Sun, 12 Aug 2018 03:00:11 +0200 (CEST)

rsync: opendir "/media/raid1/backup/j****" failed: Permission denied (13)
rsync: opendir "/media/raid1/backup/m*******" failed: Permission denied (13)
rsync: opendir "/media/raid1/backup/r***" failed: Permission denied (13)
IO error encountered -- skipping file deletion
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1196) [sender=3.1.2]

Ниже приведены разрешения файла для резервного копирования:

# ls -al /media/raid1/backup/
total 316
drwxr-s---  5 root     backup_sync  .
drwxr-xr-x 19 root     root         ..
drwxr-s---  3 j****    server_sync  j****
drwxr-s---  2 m******* server_sync  m*******
drwxr-s---  3 r***     server_sync  r***

Пользователь server_sync находится в обеих группах:

# id server_sync
uid=124(server_sync) gid=131(server_sync) groups=131(server_sync),129(backup_sync),130(media)

Я уверен Мне что-то не хватает либо с правами доступа к файлам, либо с разрешениями / членством в группах, которые у меня есть при sudo-ing и в режиме cron - кто-нибудь может указать на это?

0
задан 14 August 2018 в 17:07
1 ответ

Похоже, что cron не настраивает дополнительные группы. Запустите команду id из задания cron и запишите результат в файл или в stdout и получите его по почте.

0
ответ дан 5 December 2019 в 05:25

Теги

Похожие вопросы