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 / 问题 / 387625
Accepted
Julie in Austin
Julie in Austin
Asked: 2012-05-10 12:19:59 +0800 CST2012-05-10 12:19:59 +0800 CST 2012-05-10 12:19:59 +0800 CST

用于 Linux 的“系统文件检查器”(类似于 sfc)

  • 772

我试图找到一个工具,与 Windows 上的“sfc”命令或 AIX 上的“sysck”命令不同,它可以验证文件内容、所有权和权限是否正确。“sfc”中的“替换损坏或丢失的文件”功能不是我要找的,它是“验证所有正确的部分都在正确的位置”的功能。

我正在尝试执行的任务是验证嵌入式 Linux 产品上特定软件版本的许多不同安装和升级路径是否达到相同的整体文件系统状态——所有必需的文件和目录都存在,具有正确的内容(如 md5sums 或类似内容所述),所有者、组和权限。

单个命令的集合——查找、统计、测试等——不是我要找的。我正在寻找一种工具,例如我上面提到的任何一种。

我搜索了高低,但很多搜索都出现了“fsck”,以至于任何积极的点击都被埋没了。

filesystems verification
  • 5 5 个回答
  • 2798 Views

5 个回答

  • Voted
  1. Best Answer
    the-wabbit
    2012-05-10T12:27:07+08:002012-05-10T12:27:07+08:00

    您可能正在寻找像Tripwire这样的基于主机的 IDS——它能够根据自定义策略检查权限、所有权和文件系统校验和。Windows SFC 本质上做同样的事情,但定期进行,并且使用由 Microsoft 预定义且系统管理员无法更改的策略。

    不幸的是,每次更新系统时,您基本上都必须对文件哈希和权限数据库进行手动更改运行,因为主要发行版不会为您提供预填充的数据库以进行系统完整性验证:

    Tripwire 图来自 Red Hat 文档

    (取自http://www.centos.org/docs/2/rhl-rg-en-7.2/ch-tripwire.html)

    • 3
  2. Matthew Ife
    2012-05-10T13:18:36+08:002012-05-10T13:18:36+08:00

    我能想到的最接近的东西(在基于 redhat 的系统上)是rpm -aV。这是 rpm 的验证部分,它将尝试检查 md5 总和、文件模式和所有权是否正确放置在被检查包中列出的文件中,使用 -a 可以执行构成系统的每个包。

    rpm -aV
    

    如果你想修复包的权限和模式(可能都有点危险)。

    rpm --setperms --setugids -a
    

    但实现这项工作的最佳方法是运行rpm -aV,检查输出并确保/说明每个包/文件产生的任何异常结果。然后在产生错误的文件/包上,您可以重新安装包(如果文件不同)或重置验证输出中提供的包上的 uids/gids/mode。

    • 2
  3. Chakri
    2012-05-10T12:24:39+08:002012-05-10T12:24:39+08:00

    使用 find + stat 组合以获得所需的结果。

    例如:find /path -type f -exec stat {} \;

      # stat RTM_hpc.txt
    
      File: `RTM_hpc'
      Size: 2361        Blocks: 8          IO Block: 4096   regular file
      Device: 822h/2082d    Inode: 1059093     Links: 1
      Access: (0644/-rw-r--r--)  Uid: (  500/  chakri)   Gid: (  100/   users)
      Access: 2011-12-08 14:07:42.028802069 -0600
      Modify: 2011-05-31 08:18:46.000000000 -0500
      Change: 2011-07-19 09:09:03.952958097 -0500
    
    • 1
  4. rackandboneman
    2012-05-10T14:10:30+08:002012-05-10T14:10:30+08:00

    如何定义“一切都在正确的地方”?

    rsync -av --dry-run,可能对文件系统的参考副本使用 -c 和 --numeric-ids,对于某些用例可能效果很好。

    • 1
  5. Jure1873
    2012-05-10T12:54:37+08:002012-05-10T12:54:37+08:00

    也许你可以使用 rkhunter 来满足你的需要。它检查数据库的权限和散列,但更多的是用于查找 rootkit。Tripwire 会更好,但如果你需要更简单的东西。

    • 0

相关问题

  • 我如何知道 AIX 中磁盘上的文件系统是什么?

  • 控制 UNIX 目录内容用户组所有权

  • 在 Ubuntu 上将 Windows 磁盘分区与 Linux 分区合并

  • 在 VMPlayer 上 Windows 和 Linux 之间共享目录的最佳方式

  • md5sum 重复为同一台机器上的同一文件提供不同的校验和

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