Возможно, не так просто подключиться как root
, но ограничить ключ, используемый для подключения, только для выполнения определенных вызовов rsync
; для этого требуется запись /root/.ssh/authorized_keys
в соответствии с строками
from="192.0.2.*",command="/root/limit-rsnap" ssh-rsa AAAAB3N...
который ограничивает как место, где ожидается резервное копирование из (, это может быть не идеально для всех настроек )и, что более важно, в сценарии /root/limit-rsnap
в системе, подключенной только к определенным вызовам rsync
разрешены:
#!/bin/bash
shopt -s extglob
test -n "$SSH_ORIGINAL_COMMAND" || exit 1
case "$SSH_ORIGINAL_COMMAND" in
'rsync --server --sender -'+([vnlHogDtprRxe.isfLS])' --numeric-ids. '*)
RSYNCPATH="${SSH_ORIGINAL_COMMAND#rsync --server --sender -+([vnlHogDtprRxe.isfLS]) --numeric-ids. }"
test -e "$RSYNCPATH" && exec $SSH_ORIGINAL_COMMAND || exit 1
;;
*)
exit 1
;;
esac
Оказывается, это было вызвано политикой Selinux, запрещающей Crontab писать в домашние каталоги. Аналогичный случай описан в багтрекере Red Hat :
.Runing "crontab -e" with EDITOR=vim and do some changes to the cron file. When quit from the vim, always gets a warning message: E138: Can't write viminfo file /home/hpt/.viminfo! and some avc messages in /var/log/messages:
Jun 15 13:51:24 localhost kernel: type=1400 audit(1245045084.399:17236): avc: denied { write } for pid=24910 comm="vim" name="hpt" dev=dm-6 ino=2301953 scontext=unconfined_u:unconfined_r:admin_crontab_t:s0-s0:c0.c1023 tcontext=system_u:object_r:user_home_dir_t:s0 tclass=dir Jun 15 13:51:24 localhost kernel: type=1400 audit(1245045084.400:17237): avc: denied { create } for pid=24910 comm="vim" name="v69994" scontext=unconfined_u:unconfined_r:admin_crontab_t:s0-s0:c0.c1023 tcontext=unconfined_u:object_r:tmp_t:s0 tclass=dir Jun 15 13:51:24 localhost kernel: type=1400 audit(1245045084.400:17238): avc: denied { write } for pid=24910 comm="vim" name="hpt" dev=dm-6 ino=2301953 scontext=unconfined_u:unconfined_r:admin_crontab_t:s0-s0:c0.c1023 tcontext=system_u:object_r:user_home_dir_t:s0 tclass=dir Version-Release number of selected component (if applicable):
Решение заключается в изменении политики, чтобы разрешить это.У меня нет подробностей об этом изменении, так как у меня нет доступа Sudo к этой машине, поэтому изменение было сделано кем-то другим.