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

时间:2018-10-01 17:52:55

标签: setuid ld-preload linux-from-scratch checkinstall

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

1 。如果您阅读README

  

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

我认为它指的是诸如mkdirmvln等命令。因此,我对此不会有任何问题。我说的对吗?

2 。然后,主要问题是:

  

关于SUID / SGID程序的注意事项:CheckInstall无法跟踪其操作   由于LD_PRELOAD系统中的某些限制,   installwatch的用途。出于安全原因,这很好,但是可以   在安装过程中使用时产生意外结果   SUID / SGID二进制文件。

是什么意思?我不在乎是否丢失了某些文件。我很在意是否会出现意外结果,或者我无法正确安装该软件包。

还有多少个包裹有此问题?

1 个答案:

答案 0 :(得分:1)

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

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