为什么以 root 身份构建 RPM 是不好的?

为什么以 root 身份构建 RPM 是不好的?

包含一个突出的警告:

重要的

切勿以 root 身份构建 RPMS。

为什么以 root 身份构建 RPM 不好?是否有可能覆盖某些文件?是否存在文件权限问题?

答案1

编写错误的 RPM .spec 文件(甚至是编写良好的但有拼写错误的文件)可能会产生不正确的结果,例如:

  • 直接安装到正在运行的系统而不是沙盒中
  • 在文件系统上留下垃圾
  • 意外运行恶意命令,例如:rm -rf ${RPM_BUILD_ROOT}

RPM 构建过程中没有任何部分需要 root 权限。因此,我们在构建 RPM 时应遵循“如果不需要 root 权限,则不会以 root 身份运行”的标准流程。

这可以避免严重的事故和意外。

答案2

嘲笑对于 fedora 来说也很不错。如果它可以在 mock 中构建,那么它很可能是一个非常干净的 RPM。

答案3

一般来说,除非您确实需要权限,否则您永远都不应该使用 root 用户。但您说得对,主要问题是“rpmbuild”会执行您写入 spec 文件的几乎所有内容。(覆盖文件、创建用户、删除文件等)。

编辑:

顺便提一下,我建议看一下openSUSE 构建服务这使得为​​不同发行版构建 rpm 变得非常容易。(它也可以设置为本地实例。)

答案4

当我在互联网上搜索时,我在以下链接中找到了你提出的问题的原因 http://pmc.ucsc.edu/~dmk/notes/RPMs/Creating_RPMs.html

它只是为了避免意外的错误或无意的事情而发出警告。

相关内容