linux磁盘配额核心是限制用户/组的磁盘空间(kb)和文件数量(inode),防止分区写满引发服务瘫痪;需在支持配额的文件系统(如ext4)上,通过fstab启用usrquota、quotacheck初始化、edquota设硬限并配合quotaon启用。

新手配置Linux磁盘配额,核心是限制单个用户或组能使用的磁盘空间和文件数量,避免个别账户写满整个分区导致系统服务(如日志、邮件、Web上传)瘫痪——这正是防范磁盘耗尽型拒绝服务攻击(DoS)最直接有效的手段。
确认前提条件
确保你的系统满足基础要求:
- 使用支持配额的文件系统(ext4、XFS 均可;推荐 ext4,配置更直观)
- 内核已启用配额支持(主流发行版默认开启,无需额外编译)
- 安装 quota 工具包:
Ubuntu/Debian:sudo apt install quota
RHEL/CentOS/Rocky:sudo yum install quota或sudo dnf install quota
为关键分区启用配额支持
不要对根分区(/)直接设限,优先选用户数据密集区,比如 /home、/var/www 或独立挂载的数据分区。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 编辑
/etc/fstab,在对应分区的挂载选项中加入usrquota(用户级)和/或grpquota(组级),例如:UUID=6fec7406-8471-4bd5-b01e-451e68528292 /home ext4 defaults,usrquota,grpquota 0 2 - 保存后立即重挂载:
sudo mount -o remount /home - 验证是否生效:
mount | grep home应看到usrquota字样
初始化并启用配额数据库
这一步会扫描分区并生成配额跟踪文件(aquota.user 和 aquota.group),必须在启用前完成。
- 运行:
sudo quotacheck -cugm /home
(-c新建文件,-u/-g分别处理用户/组,-m跳过“未挂载”警告) - 检查结果:
ls -l /home/aquota.*应看到两个非空文件 - 正式启用:
sudo quotaon /home - 确认状态:
sudo quotaon -p或sudo repquota -a(初始为空,表示已就绪)
设置用户硬限制并留出缓冲余量
防攻击的关键是“硬限制必须生效”,软限制仅作提醒,不能依赖它阻止写入。
- 用
edquota -u username打开编辑器,填入数值(单位 KB):
• 第二列(soft)和第三列(hard)填相同值即为纯硬限(如 51200 KB = 50MB)
• 若需宽限期警告,soft 设为 45MB(46080 KB),hard 设为 50MB(51200 KB),系统会在超 soft 后开始倒计时 7 天 - 同时限制文件数(防止小文件塞爆 inode):第四列 soft、第五列 hard 填数字(如 5000 和 5500)
- 保存退出后立即生效,无需重启
- 测试效果:切换到该用户,尝试
dd if=/dev/zero of=testfile bs=1M count=60,应提示Disc quota exceeded
配额不是一次配置就高枕无忧。定期用 repquota -a 查看整体占用,用 quota -u username 定位异常增长账户,再结合 /var/log/messages 中的 quota 日志,就能把磁盘型 DoS 拦在发生之前。










