商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 系统应用 > 如何在Linux中设置用户的磁盘配额

如何在Linux中设置用户的磁盘配额

  发布于2026-08-16 阅读(0)

扫一扫,手机访问

配额并不是把quota包装好就会自动起作用,真正要生效,得按顺序把三件事做完整:先改挂载选项,再初始化数据库,最后启用配额。这三步少一步都不行;不然的话,执行quota -u username时,结果基本只会一直显示“none”。

如何在Linux中设置用户的磁盘配额

配额不是装完 quota 就自动生效的,必须按顺序完成挂载选项修改、数据库初始化、配额启用三步,缺一不可;否则 quota -u username 永远显示 “none”。

确认文件系统类型和 quota 工具是否就绪

先看目标分区用的是 ext4 还是 xfs —— 两者配额机制完全不同,混用会静默失败:

  • 运行 df -T /home,检查 Type 列输出是 ext4 还是 xfs
  • 执行 quota -V,若提示 command not found,需安装:
    Ubuntu/Debian:运行 sudo apt install quota;CentOS/RHEL:运行 sudo yum install quota
  • 对 xfs 分区,还需额外安装 xfsprogssudo apt install xfsprogssudo yum install xfsprogs
  • ext4 系统要确认内核支持:grep CONFIG_QUOTA /boot/config-$(uname -r) 输出中应含 ym

修改 /etc/fstab 并重挂载(ext4 和 xfs 写法不同)

配额由挂载选项控制,写错名字或位置会导致完全不生效:

  • ext4 分区:在对应行第四字段(挂载选项)末尾加 ,usrquota,例如:
    /dev/sda1 /home ext4 defaults,usrquota 0 2
  • xfs 分区:必须用 ,uquota(不是 usrquota),否则 mount -o remount 不报错但配额无效:
    UUID=abc123 /home xfs defaults,uquota 0 0
  • 改完立即执行 sudo mount -o remount /home,不能只靠重启
  • 验证是否生效:mount | grep '/home' 输出中必须出现 usrquota(ext4)或 uquota(xfs)

初始化 aquota.* 数据库(ext4)或用 xfs_quota 初始化(xfs)

这两个文件是二进制数据库,不是文本配置,手动 touch/chmod 是常见误操作:

  • ext4:
    进入挂载点目录(如 cd /home),运行 sudo quotacheck -cugm /home
    执行后检查:ls -lh aquota.* 应是非零字节文件;若为 0 字节,可能是 SELinux 阻止写入,临时关掉:sudo setenforce 0
  • xfs:
    不用创建 aquota.* 文件,直接运行 sudo xfs_quota -x -c 'print' /home 初始化
    再用 sudo xfs_quota -x -c 'limit bsoft=51200 bhard=102400 alice' /home 设限(单位 KB)
  • 别跳过这步:没有有效数据库,edquotaxfs_quota limit 的设置全无效

启用 quotaon 并用 edquota 设置限制(ext4)

启用和设限是两个独立动作,只做其一等于没做:

  • 运行 sudo quotaon /home 启用;验证:sudo quotaon -p 应显示 user quota on /home ... is on
  • 运行 sudo edquota -u alice,编辑器中填数值单位是 KB,不是 MB:
    例如软限 50MB → 填 51200,硬限 100MB → 填 102400
  • 不要用 setquota 一键设置:它绕过编辑器校验,输错单位(比如填 50 当 50KB)会导致用户刚建家目录就触发配额拒绝写入
  • 测试前务必切到目标用户:su - alice,再往 /home/alice 写文件;查用量用 quota -u alice,别用 du

最容易被忽视的,往往就是单位(KB)和初始化顺序这两个细节:quotacheck 一定要先于 quotaon 执行,而且必须确保成功生成非空的 aquota.*;xfs 下的 uquota 也不能误写成 usrquota;另外,所有操作都建立在挂载点路径精确匹配的前提上,斜杠多一个或少一个,都可能直接失效。

本文转载于:https://www.php.cn/faq/2993807.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注