首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >限制ext4文件系统中文件的最大大小

限制ext4文件系统中文件的最大大小
EN

Unix & Linux用户
提问于 2016-08-31 09:03:27
回答 2查看 13.7K关注 0票数 6

Ext4的最大文件系统大小为1EB,最大文件大小为16 of。

但是,在文件系统级别是否有可能使最大文件大小变小呢?例如,我不希望允许创建大于指定值的文件(例如,1MB)。如何在ext4上实现这一点?

如果不是ext4,那么其他任何现代文件系统都支持这种特性吗?

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2016-08-31 10:03:53

ext4有一个max_dir_size_kb挂载选项来限制目录的大小,但是对于普通文件却没有类似的选项。

但是,可以阻止进程使用setrlimit()或某些shell的ulimitlimit内置的限制来创建大于限制的文件。大多数系统还将允许您在系统范围内为每个用户设置这些限制。

当进程超过该限制时,它将接收SIGXFSZ信号。当它忽略该信号时,将导致超过该文件大小的操作(如write()truncate()系统调用)将失败,从而导致EFBIG错误。

要将该限制移至文件系统,您可以使用fuse (用户空间中的文件系统)文件系统,其中用户空间处理程序是以该限制设置启动的。bindfs是一个很好的候选人。

如果运行bindfs dir dir (即将dir绑定到自身),则bindfs启动为(zsh语法):

代码语言:javascript
复制
(limit filesize 1M; trap '' XFSZ; bindfs dir dir)

那么,任何在dir中创建大于100万的文件的尝试都将失败。bindfsEFBIG错误转发给写入文件的进程。

请注意,该限制仅适用于常规文件,这不会阻止目录超过该限制(例如,通过在其中创建大量文件)。

票数 7
EN

Unix & Linux用户

发布于 2016-08-31 09:52:31

您必须将其设置在系统级别。

对于Ubuntu编辑/etc/security/limits.conf

添加一行,如:

代码语言:javascript
复制
timb        hard    fsize           10000

您也可以使用通配符。

除非将session required pam_limits.so添加到/etc/pam.d/common-session中,否则AFAIK不适用于根用户。

票数 3
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/306913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档