RSYNCはルートファイルを上書きしません。

RSYNCはルートファイルを上書きしません。

私はrsyncこれを次のように使用します:

rsync . -vzp --rsync-path "sudo rsync" --chown=user:user  --exclude .git --progress -e "ssh -p <PORT>" user@<PUBLIC_IP>:/home/user/rsync/

ターゲットサーバーにも同様のコマンドがありますchown root:root。その後は別のコマンドが続きますrsync。ただし、rsyncルート所有権を持つファイルは上書きされません。rsyncルートファイルを上書きできるフラグはありますか?

ベストアンサー1

私は試したことがありませんが、--rsync-path "sudo rsync"通常はパスを指定して動作する方法を期待していません。プログラムは最初にそのパスを使用してファイルが存在し、実行可能であることを確認します。 「sudo rsync」は有効なパスではありません。 !

おそらく、必要なアクションを実行して引数を渡すシェルスクリプト(作成する必要があります)を指定できますが、sudoはパスワードを取得できません!

第二に、所有権を変更するときに名前を指定する場合は、その名前はリモートシステム上になければならず、数値IDを使用することをお勧めします。

rootとユーザーの両方が所有するファイルを転送する場合は、サーバーにrootとしてログインし、次を使用することをお勧めします。--numeric-ids

たぶん戦略を考え直すのが最善です。

2 つの rsync が実行されます。 1つはユーザー用、もう1つはルートファイル用です。これにより、復元時にマッピングを適切に制御できます。サーバーにrootアクセス権がない場合でも機能します。ただし、これによりセキュリティリスクが発生します。サーバーに保存されているルートファイルは、そのサーバーの管理者が読むことができます!

rsyncに関する限り、ローカルでrootアクセス権があり、リカバリに再マップできる限り、ユーザーが所有して保存することは重要ではありません。セキュリティリスクに加えて。

ルート所有ファイルはこのようなもので、サーバーに公開してはならない機密情報(鍵、パスワードなど)が含まれる可能性があるため、暗号化を検討してください。

目標(回復を含む)とローカルおよびリモートシステムへのアクセスタイプに関する追加情報を提供する必要があります。

[編集する]

これはサーバー障害に対する素晴らしい答えです。偽のルートオプションを忘れました。https://serverfault.com/a/755824

おすすめ記事