Linux磁盘配额需按顺序启用:先确认内核支持并安装quota工具,再修改/etc/fstab添加usrquota选项并remount,接着用quotacheck初始化aquota.*文件,最后quotaon启用并用edquota设置用户软硬限制及宽限期。

直接限制普通用户的磁盘使用量,核心是启用并配置 quota(磁盘配额)机制。这不是一个开关式功能,必须按顺序完成挂载支持、初始化数据库、设置限额三步,缺一不可。重点在于:配额是按分区生效的,比如限制用户在 /home 下最多用 2GB,不代表他在整个系统只能用 2GB。
确认基础支持并安装 quota 工具
多数发行版默认不装 quota 命令集,需手动安装:
- Ubuntu/Debian:
sudo apt install quota - CentOS/RHEL:
sudo yum install quota(或dnf install quota)
装好后运行 quota -V 确认可用;再执行 grep CONFIG_QUOTA /boot/config-$(uname -r),输出含 y 或 m 表示内核已支持。
启用目标分区的配额挂载选项
配额必须在文件系统挂载时激活。以限制 /home 分区为例:
- 编辑
/etc/fstab,找到对应行(如/dev/sda3 /home ext4 defaults 0 2),把defaults改成defaults,usrquota - 保存后执行
sudo mount -o remount /home - 验证是否生效:
mount | grep '/home'输出中应含usrquota
注意:XFS 文件系统同样加 usrquota(不是 uquota),但后续用 xfs_quota 命令管理。
初始化配额数据库并启用服务
系统需要二进制文件记录用量,通常在挂载点根目录下生成:
- 进入挂载点:
cd /home - 运行
sudo quotacheck -cugm /home(-c强制创建,-m忽略挂载状态检查) - 启用配额:
sudo quotaon /home - 检查状态:
sudo quotaon -p应显示enabled
这一步生成 aquota.user 和 aquota.group,权限应为 600,无需手动 touch。
为具体用户设置软硬限制(单位 KB)
限制某用户(如 alice)在 /home 最多用 1GB(硬限),允许短期超到 900MB(软限):
- 交互式设置:
sudo edquota -u alice,在 vi 中修改blocks行:921600 1048576 0 0 0 0(900MB = 921600 KB,1GB = 1048576 KB) - 命令行快速设置:
sudo setquota -u alice 921600 1048576 0 0 /home - 设宽限期(默认 7 天):
sudo edquota -t,修改Block grace period行
设置后立即生效,无需重启用户会话。用 sudo quota -u alice 可实时查看用量与限额。


















