ユーザーにCAP_MKNOD機能を提供する方法は?

ユーザーにCAP_MKNOD機能を提供する方法は?

この質問から続く: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をリモートで実行すると、デバイスノードを作成できます。

関連情報