1

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

1 . 如果您阅读自述文件

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

我认为它指的是诸如mkdir, mv,ln等命令。所以我不应该对此有任何问题。我对吗?

2 . 然后,主要问题:

SUID/SGID 程序注意事项:CheckInstall 无法跟踪其操作,因为 installwatch 使用的 LD_PRELOAD 系统存在一些限制。出于安全原因,这很好,但当安装过程使用 SUID/SGID 二进制文件时,它可能会产生意外结果。

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

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

4

1 回答 1

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

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

于 2018-10-02T08:28:41.673 回答