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

在 Linux 中为普通用户配置磁盘容量配额,不是改个参数就生效,必须按顺序完成四步:挂载选项启用、配额文件初始化、配额服务开启、用户限制设定。跳过任意一步,quota -u username 都会显示 none 或报错“no filesystem mounted with quota option”。
确认目标分区已启用 usrquota 选项
配额绑定在具体挂载点(如 /home),不全局生效。先检查是否已启用:
- 运行
mount | grep /home(把/home换成你的目标路径),输出中必须含 usrquota - 若没有,编辑
/etc/fstab,在对应行第4列(挂载选项)末尾加,usrquota,例如:/dev/sdb1 /home ext4 defaults,usrquota 0 2 - 执行
sudo mount -o remount /home生效;注意:ext4 不支持临时加 -o quota,必须写进 fstab 并 remount
生成 aquota.user 配额数据库文件
这个步骤不是“检查用量”,而是扫描文件系统并创建核心配额文件:
- 运行
sudo quotacheck -cugm /home(-c强制创建,-u用户,-g组,-m忽略挂载状态) - 执行后检查
/home/aquota.user是否存在且大小 > 0;若为空或不存在,常见原因是权限不足或路径写错 - 不要手动
touch或chmod这两个文件——quotacheck会自动设好属主(root)和权限(600)
启用配额服务并设置用户限制
配额数据库有了,但默认仍关闭,需显式启用:
- 运行
sudo quotaon /home启用;可用sudo quotaon -p确认状态为 enabled - 为用户设置限制:运行
sudo edquota -u username,进入 vi 编辑界面 - 找到对应设备行(如
/dev/sdb1),修改第一行 blocks 的两列数字:
左边是软限制(KB),右边是硬限制(KB),例如524288 1048576表示 512MB 软限、1024MB 硬限 - 保存退出(
Esc→:wq);也可用命令批量设置:sudo setquota -u username 524288 1048576 0 0 /home
验证配额是否真正生效
设置完不等于起作用,必须验证:
- 运行
sudo quota -u username,看 Block limits 下的 soft/hard 是否匹配你设的值 - 运行
sudo repquota -a | grep username,确认该用户出现在列表中,且 state 不是none - 切换到该用户,尝试在
/home/username下写入超限文件(如dd if=/dev/zero of=test bs=1M count=600),应被拒绝


















