linux用户磁盘配额需严格按四步执行:修改/etc/fstab添加usrquota选项并remount、运行quotacheck -cugm初始化aquota.user文件、启用quotaon、再用edquota设置限制;任意跳步或顺序错误均导致quota显示“none”。

Linux 中配置用户磁盘配额不是“开个开关就生效”,必须按顺序完成挂载选项修改、配额文件初始化、配额启用、限制设置四步,缺一不可;任意一步跳过或顺序错误,quota 命令都会显示 “no filesystem mounted with quota option” 或始终显示 “none”。
如何确认目标分区已启用 usrquota 挂载选项
配额是绑定在具体挂载点上的,不是全局生效。必须先检查 /etc/fstab 是否为该分区添加了 usrquota(用户)或 grpquota(组)选项。
- 运行
mount | grep /home(把/home替换为你关心的挂载点),输出中必须含usrquota,否则配额不会被识别 - 若没有,编辑
/etc/fstab,在对应行的挂载选项字段(第4列)末尾追加,usrquota,例如:/dev/sdb1 /home ext4 defaults,usrquota 0 2 - 执行
sudo mount -o remount /home生效;XFS 文件系统需用xfs_quota工具,不走这套流程 - 注意:ext4 不支持在
mount时用-o quota临时启用,必须写进/etc/fstab并 remount
quotacheck -cugm /path 是初始化配额数据库的关键动作
quotacheck 不是“检查配额是否超限”,而是扫描文件系统并生成两个核心文件:aquota.user 和 aquota.group。它们必须存在且可写,后续所有配额操作才可能成功。
- 首次运行必须带
-c(create)参数,否则报错 “Quotafile /home/aquota.user not found” -
-u表示处理用户配额,-g表示组配额,-m强制检查即使文件系统未标记为 quota-enabled(常用于刚改完 fstab 后) - 命令执行后,检查
/home(或你指定路径)下是否生成了aquota.user文件,大小通常 >0;若仍是空文件或不存在,说明扫描失败(常见于权限不足或路径错误) - 不要手动 touch 或 chmod 这两个文件——
quotacheck会自动设好属主(root)和权限(600)
edquota -u username 编辑的是软硬限制与宽限期
edquota 打开的是一个临时编辑器界面,里面两列数字分别代表软限制(soft)、硬限制(hard),单位是 KB;第三列是宽限期(grace period),默认 7 天,只对软限制生效。
- 第一行是磁盘空间(blocks),第二行是文件数量(inodes);改错行会导致限制完全失效
- 软限制(如 512000)= 500MB,硬限制(如 524288)= 512MB,宽限期建议保留默认或明确设为
7 days - 编辑保存后不会立即生效,必须配合
quotaon;若之后用setquota直接覆盖,edquota的修改会被冲掉 - 复制配额给其他用户用
edquota -p source_user target_user,比逐个编辑快得多
quota -u username 显示 “none” 说明配额根本没启用
看到 quota -u username 输出 “Disk quotas for user xxx (uid 1001): none”,不是用户没配额,而是整个配额机制没跑起来。重点排查三处:
-
quotaon -v /home是否返回 “/home: user quotas turned on” —— 若提示 “No such process”,说明aquota.user缺失或路径不对 -
repquota -a是否列出用户条目 —— 若全空,quotacheck没成功或没加-u - 用户 home 目录是否真在该分区上 ——
df ~查看实际挂载点,别在/home配了却把用户目录建在/data上 - 注意:新创建的用户不会自动继承配额,必须显式运行
edquota -u或setquota
最易忽略的一点:配额只对**新写入的文件**计数,不会回溯统计已有数据;quotacheck -m 虽能刷新当前用量,但若文件系统刚挂载且未跑过 quotacheck,初始配额文件就是空的,此时即使启用了 quotaon,所有用户也表现为 “none”。











