需启用磁盘配额功能:ext4需fstab加usrquota、remount、quotacheck、edquota/setquota配置;xfs需fstab加uquota、xfs_quota命令设定;支持edquota -p批量复制及setquota脚本化配置,最后通过dd测试验证。

如果您在麒麟OS系统中需要限制特定用户对磁盘空间的使用量,防止其过度占用存储资源,则需启用并配置磁盘配额功能。以下是针对ext4与xfs两类主流文件系统的多种设置方法:
一、为ext4文件系统启用并配置用户配额
ext4文件系统通过内核模块支持配额,需在挂载选项中启用usrquota参数,并使用edquota或setquota命令进行策略设定。
1、编辑/etc/fstab文件,为目标分区添加usrquota挂载参数。例如将/dev/sdb1挂载至/mailbox目录:
sudo vim /etc/fstab
在对应行末尾追加“,usrquota”,使该行形如:
/dev/sdb1 /mailbox ext4 defaults,usrquota 0 0
2、重新挂载目标分区以激活配额支持:
sudo mount -o remount /mailbox
3、生成配额数据库文件:
sudo quotacheck -cugv /mailbox
4、为用户quota1设置磁盘空间与inode限制:
sudo edquota -u quota1
5、在edquota打开的编辑器中,按提示输入软硬限制值(单位为KB),例如:
blocks: soft = 30720(30MB),hard = 51200(50MB)
inodes: soft = 3,hard = 5
6、启用配额功能:
sudo quotaon -uv /mailbox
二、为xfs文件系统启用并配置用户配额
xfs原生支持配额,无需额外内核模块,但挂载时必须指定uquota或usrquota参数,且配额管理依赖xfs_quota命令。
1、确保目标分区已格式化为xfs,并在/etc/fstab中启用配额参数:
/dev/sdc1 /quota xfs defaults,uquota 0 0
2、重新挂载分区:
sudo mount -o remount /quota
3、创建测试用户并设置目录权限:
sudo useradd quota2
sudo chown quota2:quota2 /quota
sudo chmod 700 /quota
4、使用xfs_quota命令直接设定配额:
sudo xfs_quota -x -c 'limit bsoft=30m bhard=50m isoft=3 ihard=5 quota2' /quota
5、验证配额是否生效:
sudo xfs_quota -x -c 'report -u quota2' /quota
三、使用edquota批量复制配额配置
当多个用户需应用相同配额策略时,可借助edquota的-p参数从源用户快速复制,避免逐个编辑。
1、先为基准用户quota1完整配置好配额:
sudo edquota -u quota1
2、将quota1的配额设置复制给新用户quota3和quota4:
sudo edquota -p quota1 quota3 quota4
3、确认复制结果:
sudo edquota -l quota3
四、通过setquota命令非交互式设定配额
setquota适用于脚本化部署场景,可在不启动编辑器的情况下直接写入配额值,提升自动化效率。
1、为用户quota5在/mailbox分区上设定空间与inode限制:
sudo setquota -u quota5 102400 102400 100 100 /mailbox
2、其中四个数值依次为:软空间限制(KB)、硬空间限制(KB)、软inode限制、硬inode限制
3、立即启用该用户的配额状态:
sudo quotaon -uv /mailbox
五、验证配额限制是否生效
切换至受配额约束的用户后,在对应挂载点下执行写入操作,系统将在达到软限制时发出警告,超过硬限制时拒绝写入。
1、切换用户:
su - quota1
2、进入配额目录:
cd /mailbox
3、尝试创建超出硬限制的文件:
dd if=/dev/zero of=testfile bs=1M count=60
4、若配额已正确启用,该命令将在写入约50MB后报错:Permission denied

















