この質問から続く:rsyncと特殊ファイルの関係
デバイスファイルをバックアップするには、ターゲットのrsyncがそれを呼び出せる必要がありますmknod
。一般的な方法は、rsyncにログインroot
してスイッチを使用するように指示することです--super
。 (例えば
rsync -avz --super ./this root@thatserver:/backup/this
)
特に、rsyncプロセスがrootとしてログインしたくありません。
によると ' man mknod
':
EPERM(エラー)
...そして呼び出し元には権限がありません(Linux:CAP_MKNOD機能なし)...
root以外のユーザーにCAP_MKNODを割り当てることはできますか?それでは、どうすればいいですか?
答え1
バイナリに機能を追加できます。たとえば/bin/rsync
、ユーザーのホームディレクトリにリモートでコピーして
/home/user/rsync
個別に実行可能にするには、次の機能を追加します。
sudo setcap CAP_MKNOD=ep /home/user/rsync
ユーザーがこのrsyncをリモートで実行すると、デバイスノードを作成できます。