Выполненный rsync с корневым разрешением на удаленной машине

Я хочу синхронизировать папку от своей машины с папкой на удаленной машине. Удаленной папкой можно только управлять root. У меня есть учетная запись на удаленной машине, которая может использовать sudo. Как я могу выполнить rsync, таким образом, что он имеет корневые полномочия на удаленной машине?

Я попробовал следующее:

rsync -avz -e ssh /home/ubuntu/my/lovely/folder ubuntu@x.x.x.x:/remote/lovely/folder --delete --rsync-path="sudo rsync"

Но (после ввода моего пароля) я получаю следующую ошибку:

sudo: no tty present and no askpass program specified
32
задан 14.04.2011, 19:45

2 ответа

Это - решение, которое я предложил:

rsync -R -avz -e ssh --rsync-path="echo mypassword | sudo -S  mkdir -p /remote/lovely/folder && sudo rsync" /home/ubuntu/my/lovely/folder ubuntu@x.x.x.x:/remote/lovely/folder --delete

Бит миссии!

11
ответ дан 07.12.2019, 09:10

Вам нужен метод для предоставления пароля к sudo. askpass программа разработана для просьбы пароли, когда нормальные механизмы не доступны. Установка sudo не потребовать, чтобы пароль работал rsync поскольку Ваш идентификатор пользователя является одной опцией.

Я обычно настраиваю основанный на ключе вход в систему с соответствующими ограничениями для случаев как это. Если Вы настраиваете ограниченный ключ что единственное выполнение rsync как корень затем такого рода вещь становится легче сделать. Другая альтернатива должна использовать rsycnd процесс для обрабатывания удаленных запросов. Конфигурация обеспечивает множество ограничений, которые могут быть введены.

Править: Я включал сценарий для установки ключей для основанных на ключе loings в разделе Creating Userids on Clients моего сообщения при Установке BackupPC на Linux. См. также documenation для ssh_config, который детализирует некоторые вещи, которые можно сделать с resticting ключевым использованием как показано в сценарии.

4
ответ дан 07.12.2019, 09:10

Теги

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