Help us understand the problem. What is going on with this article?

root権限でrsyncによるファイル転送を行う

More than 5 years have passed since last update.

SSH越しのrsyncで、sudoを使ってroot権限によるファイル転送を行う例。

foo@src.example.com から foo@dest.example.net に転送を行う。両ホストともに公開鍵認証でのみアクセス可能で、SSH agent forwardingを利用して一方から他方へアクセスするという前提。

転送元(コマンドを実行する)ホストでの設定

visudoでsudoの設定を変更。

sudoで一般ユーザのforward agentを使用できるようにする。

# visudo
# env_keepが並んでいる行の下に追記する

Defaults    env_keep += "SSH_AUTH_SOCK"

転送先ホストでの設定

visudoでsudoの設定を変更。

rsyncをパスワードなしで実行できるように、またTTYなしで実行できるようにする。"foo"の部分にはユーザ名を指定すること。

# visudo
# ファイル最下部に追記

Defaults!/usr/bin/rsync    !requiretty
foo    ALL=(ALL)       NOPASSWD: /usr/bin/rsync

転送実行

rsync-path オプションでsudoを指定して実行。転送先ホストのユーザ名指定を忘れないこと(省略するとrootで接続しようとしてしまう)。


sudo rsync -auvz -e ssh --rsync-path='sudo rsync' path/to/dir foo@dest.example.net:/path/to/
tkykmw
プログラマ兼Linuxサーバ管理者 実務でメインに使用しているのはPHP(CakePHP,WordPressなど) 好んで使う言語はJavaScript,Ruby iOSアプリケーション開発(Objective-C)も経験はあるがブランクが長い その他SQL(MySQL),HTML,CSS等
http://tkyk.achromatichues.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away