宛先マシンでrudoとsudoを使用する


39

rsyncがUIDとGIDを期待どおりに設定しないという問題があるため、私の直感では、宛先マシン上rsyncで実行する必要がありますroot

rootセキュリティのために無効になっているため、SSH経由でログインできません。宛先マシンのユーザーはを使用できますsudo

それを使用することが可能であるrsyncsudo

回答:


68

宛先マシン上

  1. 次のパスを見つけますrsyncwhich rsync
  2. /etc/sudoersファイルを編集しますsudo visudo(参照:visudoを使用する必要がありますか?
  3. 行の追加<username> ALL=NOPASSWD:<path to rsync>ユーザ名が rsyncは、ログオンに使用するユーザーのログイン名です。そのユーザーは使用できる必要がありますsudo

次に、ソースマシンで、sudo rsync使用するものを指定します。

rsync ... --rsync-path="sudo rsync" ...

NOPASSWD宛先マシンでそれを使用せずに使用すると、メッセージが表示されます

sudo:ttyが存在せず、askpassプログラムが指定されていません


特定のグループのユーザーがこれを行うことを許可する、これに対する変更は何ですか?<username>の代わりに<groupname>バージョンがありますか?
ブライアン

3
私が使用してのおかげで、私だけでは、PKIを使用する-e="ssh -i $PRIVATE_KEY_PATH" --rsync-path="sudo rsync"
ATを

1
もちろん、<username>はローカルおよびリモートでrsyncを使用してrootとしてすべてを読み書きできるため、セキュリティ上の懸念によりrootとしてログインできないという部分はちょっと気になります...本質的にあなたは今やっています。
hmn

1
これらの指示に従った後でも「not tty present ...」エラーが表示されますか?そうだった。追加した行/etc/sudoersがファイルの最後(または同じユーザーに影響を与える可能性のあるグループルールの後)に来るようにして、問題を解決しました。
CPBL

1
私はこのソリューションを使用していますが、ユーザーが宛先サーバーのrsyncに渡すことができる引数を制限することにより、セキュリティを改善したいと考えています。通常、使用できる引数を制限し<username> ALL=NOPASSWD:<path to rsync> <args>ますが、このようにリモートで呼び出されたときに引数がどうなるかはわかりません。何か案は?
ピートコーネル

3

リモートのsudoにX-windowsからパスワードを尋ねさせることができます。これを行う方法は次のとおりです。

  1. ssh-askpassがリモートホストにインストールされていることを確認してください(もちろん、X-windowsを使用していることを確認してください)
  2. これが次の場所にあることを確認してください/etc/sudo.conf
# Path to askpass helper program
Path askpass /usr/bin/ssh-askpass
  1. これらのオプションをrsyncに追加します。 -e "ssh -X" --rsync-path="sudo -A rsync"

    • ssh -X X-windows情報とポートをリモートセッションに転送します
    • sudo -A sudoがssh-askpassを使用してパスワードを要求します

Ubuntu 18で動作します。宛先m / cに/etc/sudo.confを作成します(まだ存在しない場合)
Snidhi Sofpro

0

私の解決策は--rsync-path="sudo rsync"、パスワードを要求する場合、次のような回避策を使用することを使用することです:

rsync -avz --stats --rsync-path="echo <SUDOPASS> | sudo -Sv && sudo rsync"  user@192.168.1.2:/ .

ただし、コマンドラインにパスワードを入力することは安全ではありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.