`btrbk`: 権限の分離には btrfs-progs-btrbk バックエンドを使用します。個々のスクリプトの代わりにパッチセットを使用するのはなぜですか?

`btrbk`: 権限の分離には btrfs-progs-btrbk バックエンドを使用します。個々のスクリプトの代わりにパッチセットを使用するのはなぜですか?

BTRBKbtrfsスナップショットを使用して自動バックアップを送受信するスクリプトです。 「バックエンド」がありますbtrfs-progs-btrbk、これは個々のバイナリを作成するために使用されるパッチのセットですbtrfs-progs。これらのバイナリの目的は、(7)を使用して権限の分離を許可することです。したがって、btrfs-subvolume-showbtrbkがcronスクリプトとして実行されるときにroot権限を付与する必要はなく、いくつかのサブコマンドが必要です。btrfs-subvolume-listcapabilitiesbtrfs

単に、各コマンドに対して一連のスクリプトを提供するのではなく、パッチセットを使用する理由は何であるか混乱しています。結局、btrbkそれはパールテキストそのものです。誰にも洞察力がありますか?

答え1

btrfs-subvolume-showそれがどこから来ると思いますか? btrfs-progsを再構築すると、次のように分割されます。 Perlスクリプトを介して単一のCプログラムを複数のプログラムに魔法のようにリファクタリングすることは非現実的です。

このリポジトリを以前のバージョンと比較してください。タグ5.1話す。 「区切られた」Makefileターゲットへの変更、どの関数がどのバイナリにあるかをコメントするメタデータ、およびそれをオプションで作成するための#ifdefの束に注意してください。ここの歴史はわかりませんが、このような巧妙なパッチセットがアップストリームで承認されるまでにはしばらく時間がかかります。

答え2

まあ、セキュリティの問題です。 著者の引用btrbk,

...スクリプトでsetcapを有効にするのは悪い考えであり(ほとんどのシステムでは不可能だと思うシェルソルバーを設定したくありません)、「継承可能」機能を設定する必要があります。 (7)ビット。

彼は試したパッチアップストリームのマージしかし、これまでは幸運ではありませんでした。

関連情報