rsyncがUIDとGIDを期待どおりに設定しないという問題があるため、私の直感では、宛先マシン上rsync
で実行する必要がありますroot
。
root
セキュリティのために無効になっているため、SSH経由でログインできません。宛先マシンのユーザーはを使用できますsudo
。
それを使用することが可能であるrsync
とsudo
?
rsyncがUIDとGIDを期待どおりに設定しないという問題があるため、私の直感では、宛先マシン上rsync
で実行する必要がありますroot
。
root
セキュリティのために無効になっているため、SSH経由でログインできません。宛先マシンのユーザーはを使用できますsudo
。
それを使用することが可能であるrsync
とsudo
?
回答:
宛先マシン上
rsync
。which rsync
/etc/sudoers
ファイルを編集しますsudo visudo
(参照:visudoを使用する必要がありますか?)<username> ALL=NOPASSWD:<path to rsync>
、ユーザ名が rsyncは、ログオンに使用するユーザーのログイン名です。そのユーザーは使用できる必要がありますsudo
次に、ソースマシンで、sudo rsync
使用するものを指定します。
rsync ... --rsync-path="sudo rsync" ...
NOPASSWD
宛先マシンでそれを使用せずに使用すると、メッセージが表示されます
sudo:ttyが存在せず、askpassプログラムが指定されていません
-e="ssh -i $PRIVATE_KEY_PATH" --rsync-path="sudo rsync"
/etc/sudoers
がファイルの最後(または同じユーザーに影響を与える可能性のあるグループルールの後)に来るようにして、問題を解決しました。
<username> ALL=NOPASSWD:<path to rsync> <args>
ますが、このようにリモートで呼び出されたときに引数がどうなるかはわかりません。何か案は?
リモートの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を使用してパスワードを要求します