`btrbk`:使用 btrfs-progs-btrbk 后端进行权限分离。为什么是补丁集而不是单独的脚本?

`btrbk`:使用 btrfs-progs-btrbk 后端进行权限分离。为什么是补丁集而不是单独的脚本?

BTRBKbtrfs是使用快照和发送/接收自动备份的脚本。它有一个“后端”btrfs-progs-btrbk,它是一个补丁集btrfs-progs,用于创建单独的二进制文件,例如。这些二进制文件的目的是允许使用(7) 进行权限分离,因此btrfs-subvolume-show当btrbk 作为 cron 脚本运行时,它不需要被赋予 root 权限,只需要几个子命令。btrfs-subvolume-listcapabilitiesbtrfs

我很困惑为什么要使用补丁集,而不是简单地为每个命令提供一系列脚本。毕竟btrbk本身就是珍珠文字。有人有任何见解吗?

答案1

你认为btrfs-subvolume-show来自哪里?重建 btrfs-progs 就这样分裂了。通过 Perl 脚本将一个单一的 C 程序神奇地重构为多个程序是不切实际的。

将该存储库与其自身的早期版本进行比较说标签5.1。请注意对“分隔”的 Makefile 目标的更改,注释哪些函数位于哪些二进制文件中的元数据,以及一堆 #ifdef 以使其可选。我不知道这里的历史,但是如此聪明的补丁集可能需要一段时间才能被上游接受。

答案2

好吧,这是安全问题。 引用作者的话的btrbk,

...在脚本上启用 setcap 是一个坏主意(你真的不想设置 shell 解释器,我认为这在大多数系统上甚至是不可能的),并且你需要设置“可继承”功能(7)位。

他尝试过将他的补丁合并到上游,但到目前为止运气不佳。

相关内容