Rsync - 所有者/グループメタデータを保持しますが、ローカルユーザーは維持しません

Rsync - 所有者/グループメタデータを保持しますが、ローカルユーザーは維持しません

rsync私のサーバーはコンテンツをバックアップしたいです。後でバックアップを使用してサーバーを復元できるように、所有者/グループを維持したいと思います。ただし、サーバーには自分のローカルコンピュータとは異なるユーザーとグループのセットがあるため、ローカルユーザーを使用することは意味がありません。rsyncまた、セキュリティ上の理由からrootとして実行したくありません。どうすればいいですか?

答え1

各ファイルの権限、ユーザー、グループを保存するスクリプトを作成できます。

getfacl -R / > /tmp/permissions.txt

必要に応じて復元可能

setfacl --restore=permissions.txt

次に、 request.txt を含むすべてをバックアップホストの通常のユーザーアカウントに rsync します。

欠点は、Permissions.txtが実際のバックアップと100%同期しない可能性があることです。

通常のユーザーアカウントに不正な権限で秘密ファイルを保存すると、セキュリティ上の問題が発生する可能性があります。少なくともフルバックアップを含むディレクトリは、バックアップユーザーのみが読み取ることができる必要があります。

追加のセキュリティ注:元のホストのPermissions.txtも保護する必要があり、ルートのみを読み取ることができます。

答え2

ルートとして実行されないソリューションは提供できませんが、以下は提供できます。

まず、これを使用すると、--numeric-idsUID / GIDが維持されます。回復のために、rsyncまたは(またはUID / GIDと混同されないすべてのもの)を使用してもtarかまいません。

rsync -avP --numeric-ids

rootただし、Unixではファイルを別のユーザーとして作成する必要があるため、rootとして実行しないと問題になります。 selinuxを使用すると、コマンドにすべてのファイルに対する書き込み権限を付与できますが、これは非常に複雑です(--fake-super役に立ちますが)。

バックアップサーバーはルートを使用しますが、相手はルートを使用しない場合はセキュリティ要件を満たしますか?

# run this on the backup host:
rsync -avP --numeric-ids user@SOURCEHOST:/path/to/files/. /path/to/dest/.

root@BACKUPHOSTがuser@SOURCEHOSTでSSH経由で接続できる場合は問題ありません。まあ、ほとんどは良いです。ファイルにアクセスできない場合はuserバックアップされません。状況によっては、これは問題にならない可能性があります。

関連情報