试图通过checkinstall或porg来理解LD_PRELOAD和SUID/SGID



我想在我的LFS发行版中使用porg。它类似于checkinstall,它使用LD_PRELOAD

1. 如果您阅读自述文件:

CheckInstall 当前无法跟踪所做的任何文件系统更改 通过静态链接的程序

我认为它指的是mkdirmvln等命令。所以我应该对此没有任何问题。我说的对吗?

2.那么,主要问题:

关于 SUID/SGID 程序的说明:CheckInstall 无法跟踪其操作 由于LD_PRELOAD系统的一些限制, 安装监视使用。出于安全原因,这很好,但它可以 安装过程使用 时生成意外结果 SUID/SGID 二进制文件。

什么意思?我不在乎我是否忘记了一些文件。我确实关心是否会有意外的结果,或者我是否无法正确安装软件包。

另外,有多少包有这个问题?

  1. 如果您的系统上的 coreutils(mkdirmv等(是静态链接的(即在它们上运行file报告"静态链接"(,porg将无法跟踪它们的操作,因此某些已安装的文件可能无法跟踪。静态链接的可执行文件在 Linux 中是二等公民,LD_PRELOAD不支持它们。

  2. Setuid 可执行文件确实在使用前清理LD_PRELOAD- 它们忽略所有名称中有斜杠的文件(因此只能加载来自标准系统路径的文件(,并且还要求共享库本身具有 setuid 位设置。因此,在您的情况下,您需要找到porg的预加载库并在其上设置 setuid 位(通过chmod a+s libxyz.so(。顺便说一句,要求porg作者在其发行版中进行此更改可能是有意义的。我认为这不会在典型的软件包中引起任何问题,因为安装程序通常不需要运行setuid程序(如mountpasswdsudo(。

相关内容

  • 没有找到相关文章

最新更新