需启用磁盘配额机制,具体包括:一、修改/etc/fstab添加usrquota参数并remount;二、用quotacheck -cuv生成aquota.user文件;三、用setquota为用户设定容量与文件数的软硬限制;四、用quotaon启用配额并用quota -u验证;五、用edquota -t调整宽限期。

如果您在银河麒麟操作系统中需要为不同用户分配特定的磁盘使用空间,防止某位用户过度占用存储资源,则需启用磁盘配额(disk quotas)机制。该机制依赖于文件系统级支持,仅对已启用配额选项的挂载点生效。以下是设置用户磁盘限额的具体操作步骤:
一、确认文件系统支持并启用配额挂载选项
磁盘配额功能需在目标分区挂载时显式启用,内核默认支持,但fstab中必须添加usrquota参数以激活用户级配额。未启用此选项的挂载点无法应用限额策略。
1、编辑/etc/fstab文件:sudo nano /etc/fstab
2、定位目标分区行(例如/dev/sdb1 /mnt/data ext4 defaults 0 0),将其修改为:/dev/sdb1 /mnt/data ext4 defaults,usrquota 0 0
3、重新挂载该分区以使配置生效:sudo mount -o remount /mnt/data
二、生成配额数据库文件
系统需在目标挂载点下创建aquota.user文件用于记录用户配额状态,该文件由quotacheck命令自动生成,若已存在则跳过;若报错“no filesystem mounted”,说明挂载选项未正确启用或路径错误。
1、运行检测并初始化配额文件:sudo quotacheck -cuv /mnt/data
2、验证文件是否生成:ls -l /mnt/data/aquota.user
3、如提示“Operation not permitted”,请临时禁用SELinux:sudo setenforce 0
三、为指定用户设置软硬限制
配额包含容量(KB)与文件数量两类限制,其中软限制允许用户短暂超额(配合宽限期),硬限制为绝对上限。root用户不受任何配额约束,无需为其配置。
1、确保目标用户已存在(如用户testuser):id testuser
2、设定容量限制:软限500MB、硬限600MB;文件数软限100、硬限120:sudo setquota -u testuser 512000 614400 100 120 /mnt/data
3、启用该挂载点的用户配额功能:sudo quotaon -uv /mnt/data
四、验证配额是否生效
配额启用后不会立即反映在df输出中,需通过专用命令查询实际使用情况。用户写入行为将受实时监控,超出硬限制时将触发“Disk quota exceeded”错误。
1、查看当前用户配额状态:quota -u testuser
2、切换至testuser账户,尝试创建大量小文件:su - testuser -c "touch /mnt/data/{1..130}"
3、观察第121个文件是否创建失败,并检查错误信息是否含"No space left on device"字样
五、调整宽限期与配额告警阈值
软限制允许用户在宽限期内继续写入,超期后自动降级为硬限制。该期限默认为7天,可通过edquota命令修改,适用于需临时扩容的运维场景。
1、编辑用户配额及宽限期:sudo edquota -t -u testuser
2、在打开的编辑器中将Block grace period和Inode grace period均设为00:00:00(即立即生效硬限制)
3、保存退出后,再次运行:sudo quota -u testuser确认宽限期已更新











