rsync-over-sshを使用して、複数のリモートターゲットマシンのバックアップを中央バックアップにインポートしたいと思います。
rootでこれを行うことができますが、これにより、バックアップが必要なマシンに書き込んだり、マシンから削除した誤ったrsyncコマンドを誤って実行したりする可能性があります。
ターゲットコンピュータに読み取り専用rootユーザーを設定できますか?
rsyncコマンドは、ターゲットシステム上のすべてのファイルを読み取ることはできますが、書き込むことはできません。
ベストアンサー1
root以外の専用ユーザーとしてrsyncの読み取り側を実行しますが、次のようにします。能力 CAP_DAC_READ_SEARCH
。ユーザーはファイルシステム全体を見ることができる必要があり(もちろん)、/usr/bin/rsync
この機能を使用してコピーにアクセスする必要があります。私はLinuxの機能についてはよくわかりませんが、設定方法は次のとおりです。
cp /usr/bin/rsync /usr/local/sbin/rsync-for-backup
chown root.root /usr/local/sbin/rsync-for-backup
chmod 700 /usr/local/sbin/rsync-for-backup
setfacl -m user:backupuser:rx /usr/local/sbin/rsync-for-backup
setcap cap_dac_read_search+ep /usr/local/sbin/rsync-for-backup
rsyncが更新されるたびにコピーを更新することを忘れないでください。--rsync-path=/usr/local/sbin/rsync-for-backup
反対側に行きます。
(私はLinuxを想定しています。他のUnixバリアントには別のソリューションが必要です。)
他の潜在的なアプローチ:
- binfsソリューションのhttps://unix.stackexchange.com/a/91522ファイルの内容を読み取ることができますが、一部のメタデータが削除されます。バックアップする方法があるかどうかはわかりません。
- 限定的な SELinux ルールを使用して root として実行しても問題はありませんが、ルールが何であるかを尋ねないでください。