rsyncが期待どおりにUIDとGIDを設定しないという問題 があるため、私の直感では、rsync
は宛先マシンでroot
として実行する必要があります。
SSH経由でroot
としてログインすることはできません。セキュリティ上の理由で無効になっているためです。宛先マシンのユーザーはSudo
を使用できます。
rsync
をSudo
とともに使用することはできますか?
宛先マシン上
rsync
:which rsync
へのパスを見つけます/etc/sudoers
ファイルを編集します:Sudo visudo
(参照: visudoを使用する必要がありますか? )<username> ALL=NOPASSWD:<path to rsync>
を追加します。usernameは、rsyncがログオンに使用するユーザーのログイン名です。そのユーザーはSudo
を使用できる必要があります次に、ソースマシンで、Sudo rsync
を使用するように指定します。
rsync ... --rsync-path="Sudo rsync" ...
宛先マシンでNOPASSWD
なしで使用すると、メッセージが表示されます
Sudo:ttyが存在せず、askpassプログラムが指定されていません
私の解決策は--rsync-path="Sudo rsync"
を使用することです。パスワードを要求された場合、次のような回避策を使用できます。
rsync -avz --stats --rsync-path="echo <SUDOPASS> | Sudo -Sv && Sudo rsync" [email protected]:/ .
ただし、コマンドラインにパスワードを入力するのは安全ではありません。
リモートのSudoにX-windowsを介してパスワードを要求させることができます。これを行う方法は次のとおりです。
ssh-askpass
がリモートホストにインストールされていることを確認してください(もちろん、X-windowsを使用していることを確認してください)/etc/Sudo.conf
にあることを確認してください:# Path to askpass helper program
Path askpass /usr/bin/ssh-askpass
これらのオプションをrsyncに追加します。-e "ssh -X" --rsync-path="Sudo -A rsync"
ssh -X
は、X-windows情報とポートをリモートセッションに転送しますSudo -A
は、sudoがssh-askpassを使用してパスワードを要求するようにします