AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 709380
Accepted
Michael Kohne
Michael Kohne
Asked: 2015-07-30 05:14:16 +0800 CST2015-07-30 05:14:16 +0800 CST 2015-07-30 05:14:16 +0800 CST

rpm -V 什么时候不验证 md5sums?

  • 772

我有一个旧系统(Fedora Core 6,它是一个用于为旧设备构建的独立系统)。我正在尝试构建一个匹配的虚拟机,但我注意到了一个我无法解释的差异。

两个系统上都有包 glibc-2.5-3,其中包括文件 /lib/libc-2.5.so。

输出在两个系统上rpm -qi glibc完全匹配。

在这两个系统上,rpm -Vv都说一切都很好(........ /lib/libc-2.5.so)。

两个系统上的md5sum文件不匹配。(

当我objdump -x在两个系统上执行文件时,我得到不同的起始地址值,确认实际上两个 SO 文件是不同的。

那么,为什么rpm -V告诉我 md5sum 匹配,而它显然不匹配?这些库是如何变得不同的?

fedora
  • 1 1 个回答
  • 142 Views

1 个回答

  • Voted
  1. Best Answer
    Etan Reisner
    2015-07-30T06:16:41+08:002015-07-30T06:16:41+08:00

    这些库很可能是预先链接的。RPM 知道预链接。

    这篇文章谈到了它。

    “问题”(如果你可以这么说的话)是 rpm 知道预链接,并且知道如何处理它。正如此邮件列表电子邮件中简洁解释的那样,“rpm when –verify 将预链接 –verify,本质上是 –undo,然后再次进行预链接并进行比较。” 所以 rpm 没有通过验证的原因是它基本上关闭了要检查的文件的预链接,运行验证,然后重新打开预链接。这就是为什么 rpm 不会报告 MD5SUM 更改,但 AIDE 会报告的原因。

    链接的电子邮件在哪里:

    在 2003 年 4 月 4 日星期五下午 4:24:39 -0500,詹姆斯·拉尔斯顿写道:

    在 2003-04-04 11:34:35-0500 上,Jakub Jelinek 写道:

    人预链接

    我最终会写更多的文档。

    一个问题...

    如果 prelink 就地修改了实际的二进制文件和库(从我阅读手册页来看似乎就是这种情况),这不是本质上使“rpm --verify”无用吗?prelink 修改的每个二进制文件和库都将无法通过 size/md5sum/mtime 测试。

    它不会失败。rpm 当--verify 将预链接--verify,本质上是--undo,然后再次预链接和比较。

    即使 --undo 用于恢复预链接,“rpm --verify”仍然会失败(除非预链接恢复了文件开始之前的确切 mtime,也就是说)......

    prelink 不会修改预链接库/二进制文件的 mtimes。

    雅库布

    通常,另一种可能性是可以在规范文件本身的每个文件或每个目录级别上禁用单独的验证检查。因此,虽然在这种情况下并非如此,但打包程序完全有可能禁用 MD5 总和检查已知因某种原因而更改的文件。

    • 3

相关问题

  • 将 Fedora 用于服务器有什么问题?

  • /usr/bin/ld: 找不到 -lssl

  • Ubuntu、Fedora、openSUSE 对比

  • Fedora 11 上的 DNS 服务器

  • 在 VM 中运行 Fedora 目录服务器

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve