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 / 问题 / 131845
Accepted
codeholic
codeholic
Asked: 2010-04-13 22:27:54 +0800 CST2010-04-13 22:27:54 +0800 CST 2010-04-13 22:27:54 +0800 CST

stat 返回的文件大小是否会受到影响?

  • 772

我想确保没有人更改文件。为了做到这一点,我不仅要检查文件的 MD5 总和,还要检查它的大小,因为据我了解,这个额外的简单检查可以复杂地伪造几个数字。

我可以相信stat返回的尺寸吗?我不是说是否对stat自身进行了更改。我没那么深。但是,例如,是否可以stat通过破解目录文件来损害返回的文件大小?或者通过类似的方式,不需要超级用户权限?

是Linux。

linux filesystems security files stat
  • 3 3 个回答
  • 709 Views

3 个回答

  • Voted
  1. Dennis Williamson
    2010-04-13T23:25:33+08:002010-04-13T23:25:33+08:00

    这是稀疏文件的演示,这是一种可能误导大小的方式:

    $ dd if=/dev/zero of=sparse.out bs=512 seek=100000 count=0
    0+0 records in
    0+0 records out
    0 bytes (0 B) copied, 7.5053e-05 s, 0.0 kB/s
    $ echo hi>>sparse.out
    $ ls -l sparse.out
    -rw-r--r-- 1 user group 51200003 2010-04-13 02:09 sparse.out
    $ stat sparse.out
      File: `sparse.out'
      Size: 51200003        Blocks: 24         IO Block: 4096   regular file
    Device: 802h/2050d      Inode: 1111111     Links: 1
    Access: (0644/-rw-r--r--)  Uid: ( 1111/  user)    Gid: ( 1111/  group)
    Access: 2010-04-13 02:09:11.000000000 -0500
    Modify: 2010-04-13 02:09:09.000000000 -0500
    Change: 2010-04-13 02:09:09.000000000 -0500
    $ hexdump -C sparse.out
    00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
    *
    030d4000  68 69 0a                                          |hi.|
    030d4003
    $ du sparse.out
    12       sparse.out
    

    如您所见,字节数显示ls并stat显示分配的空间,但只有块数stat和输出du甚至接近文件的实际内容。

    • 5
  2. Best Answer
    TCampbell
    2010-04-14T04:14:15+08:002010-04-14T04:14:15+08:00

    您询问是否有人可能会通过破解目录文件来破坏 stat 返回的文件的大小。不,那是不可能的。该目录只是文件名和 inode 编号的列表。所有其他文件信息(所有者、组、模式、大小等)都包含在 inode 中(至少在符合 POSIX 的文件系统中),并且是 stat 收集这些信息的地方。

    • 1
  3. Brian Tillman
    2010-04-13T23:21:26+08:002010-04-13T23:21:26+08:00

    为什么要关心文件的大小?比较 MD5 和将绝对确定地告诉您文件是否已更改。文件中的翻转位将保留文件大小,但可能是完全不同的文件。

    • 0

相关问题

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

  • 在 SQL Server 中,何时应将 PRIMARY Data FileGroup 拆分为辅助数据文件?

Sidebar

Stats

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

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

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

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

    • 9 个回答
  • Marko Smith

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

    • 3 个回答
  • Marko Smith

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

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +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