ubuntu配额必须按顺序完成四步:修改/etc/fstab添加usrquota/grpquota、运行quotacheck生成aquota.*文件、执行quotaon启用、用edquota设置软硬限制,缺一不可;否则quota命令显示“none”且写入不受限。

Ubuntu 上配额不是“开个开关就生效”的功能,必须按顺序完成挂载选项修改、数据库初始化、服务启用、限制设置四步,漏掉任意一步都会导致 quota 命令查不到数据或写入不被拦截。
修改 /etc/fstab 启用 usrquota 和 grpquota
这是所有后续操作的前提。配额支持由内核在挂载时决定,不是靠服务启动后动态加载的。
- 编辑
/etc/fstab,找到目标分区(如/home或/),在第四列(挂载选项)中追加,usrquota,grpquota,注意用英文逗号连接,不能有空格 - 如果用 UUID 挂载(推荐),先用
blkid确认对应分区的 UUID,再写进 fstab;别直接抄设备名(如/dev/sda1),热插拔或重装后可能错位 - 改完后必须执行
sudo mount -o remount /target/path,否则新选项不会生效;若提示“device is busy”,说明有进程正在访问该分区,可用sudo lsof +D /target/path查看并终止,而不是强行重启
运行 quotacheck 生成 aquota.user 和 aquota.group
quotacheck 不是“检查”而已,它实际会扫描整个文件系统,统计每个用户/组当前占用的块和 inode 数,并写入配额数据库文件。跳过这步,edquota 编辑的数值就只是纸上谈兵。
Ubuntu 26.04 LTS(代号“Resolute Raccoon”)是Canonical于2026年4月23日发布的下一代长期支持版操作系统,提供长达10年的技术支持。它搭载Linux 7.0内核与GNOME 50桌面环境,全面转向Wayland协议,并引入Rust重写的核心工具以增强安全性。官方提供适用于AMD64和ARM64架构的桌面及服务器ISO镜像,是追求前沿技术与极致稳定的开发者
- 首次运行必须带
-c(create)参数,否则会报错“quota file not found” - 推荐加
-v(verbose)和-m(force check even if mounted read-write),避免因后台进程写入导致统计不准 - 命令示例:
sudo quotacheck -cvmug /home——-u和-g分别表示同时处理用户和组配额;执行后检查/home/aquota.user是否存在且非空 - 常见错误:
quotacheck: Cannot remount filesystem... use -m,直接补上-m即可,不用先关服务或卸载分区
用 quotaon 启用配额并验证状态
quotaon 是真正把内核配额钩子挂上去的动作。即使 aquota.user 存在,没执行这步,用户写文件完全不受限。
- 启用命令:
sudo quotaon /home(路径必须和 fstab 中一致);加-v可看到具体启用了哪些类型 - 验证是否生效:
sudo quotaon -p /home,输出中user quota和group quota对应的 status 应为on - 如果报错
Device or resource busy,通常是因为之前quotacheck扫描时没加-m,导致内核认为配额文件可能损坏,此时先sudo quotaoff /home再重试 - 配额服务默认不随系统自启,需手动添加 systemd 服务或写入
/etc/rc.local(Ubuntu 22.04+ 已弃用),更稳妥的做法是确保 fstab 配置正确,系统重启后自动 remount 并触发配额启用
用 edquota 设置软硬限制及宽限期
edquota 默认调用 vi,但数值单位是 KB(不是 GB),且软限制必须 ≤ 硬限制,否则保存时会静默失败——你根本看不到报错,但配额不会生效。
- 编辑用户配额:
sudo edquota -u username;编辑组配额:sudo edquota -g groupname - 关键字段含义:
blocks是已用空间(KB),soft和hard是对应限制;inodes行同理,控制文件数量;宽限期单独用sudo edquota -t设置,默认 7 天 - 单位换算:100GB =
102400000KB(100 × 1024 × 1024),别手误写成100000000 - 批量复制配额:
sudo edquota -p template_user -u new_user,比一个个手输安全,尤其适合 SFTP 用户批量管理
最易被忽略的是宽限期(grace period)行为:用户超过软限制后,只有在宽限期内未降到软限以下,硬限制才会真正生效;而一旦达到硬限制,立刻拒绝写入,连 touch 都失败。测试时务必用 dd if=/dev/zero of=test bs=1M count=200 这类真实写入操作,别只靠 quota -u username 查看数字——那个显示的是当前用量,不是拦截点。










