1. 安装磁盘配额工具
在Debian系统中,首先需要安装quota工具包(部分场景可能需要quota-nls支持多语言提示),用于管理磁盘配额功能。执行以下命令安装:
sudo apt update
sudo apt install quota quota-nls
2. 配置/etc/fstab文件启用配额
编辑系统挂载配置文件/etc/fstab,在需要启用配额的分区挂载选项中添加usrquota(用户级配额)和/或grpquota(组级配额)参数。例如,若要对根分区/dev/sda1启用用户和组配额,修改后的条目如下:
/dev/sda1 / ext4 defaults,usrquota,grpquota 0 1
注意:修改前建议备份原文件(sudo cp /etc/fstab /etc/fstab.bak),避免配置错误导致系统无法启动。
3. 重新挂载文件系统应用更改
保存/etc/fstab后,通过mount命令重新挂载目标分区,使新增的配额选项立即生效:
sudo mount -o remount /
4. 初始化配额数据库
使用quotacheck命令扫描文件系统,创建配额数据库(aquota.user用于用户配额,aquota.group用于组配额)。-c表示创建数据库,-u启用用户配额,-m启用组配额(避免覆盖已有数据):
sudo quotacheck -cum /
5. 启用磁盘配额
通过quotaon命令开启配额功能,-v显示详细过程,-u启用用户配额,-g启用组配额:
sudo quotaon -vug /
6. 设置用户/组配额限制
使用edquota命令编辑指定用户或组的配额规则,支持设置软限制(soft limit,超过后会触发警告并在宽限期内允许继续使用)和硬限制(hard limit,绝对不允许超过的上限)。例如,为用户username设置根分区的磁盘块(1块=1KB)和inode(文件数量)限制:
sudo edquota -u username
编辑器中会显示类似内容,修改数值即可(单位:KB/个):
Disk quotas for user username (uid 1000):
Filesystem blocks soft hard inodes soft hard
/dev/sda1 102400 512000 1024000 1000 2000 3000
若需设置组配额,将-u替换为-g(如sudo edquota -g groupname)。
7. 验证配额设置
quota -u username
repquota /
df -h
du -sh /home/username
8. 可选:设置定期检查配额
通过cron任务定期自动执行quotacheck和quotaon,确保配额数据的准确性。编辑当前用户的cron任务:
sudo crontab -e
添加以下行(每天凌晨0点执行):
0 0 * * * /usr/sbin/quotacheck -cum /
0 0 * * * /usr/sbin/quotaon -vug /