什么是磁盘配额

磁盘配额是用来限制用户和用户组的磁盘使用额度,简单的说就是可以限制用户、用户组在该分区下使用的文件大小和文件数量。
注意:磁盘配额无法限制root用户

磁盘配额相关术语

blocks限制:限制用户、用户组在该分区下使用的文件大小
inode限制:限制用户、用户组在该分区下创建的最大文件数量
软限制:超出此范围会被警告,但仍可以继续使用和创建,超出部分会保存到宽限时间期
硬限制:最高限制,用户使用容量不能超过这个限制
宽限时间:当你的磁盘用量处于soft和hard之间时,系统会给予警告,但也会给一段时间让用户自行管理磁盘,这段时间就是宽限时间,如果到了宽限时间,用户没有进行任何磁盘管理,soft限值会被hard限值取代进行限制

配置磁盘配额

我们现在对/dev/sdb5分区进行磁盘配额,对test1用户进行限制,一般对用户组限制的情况并不常见。
(1)关闭selinux

setenforce 0

(2)查看系统是否启用了quota

grep CONFIG_QUOTA /boot/config-3.10.0-957.el7.x86_64


(3)查看系统是否安装了quota服务

rpm -qa | grep quota
#没有的话,yum安装一下
yum install -y quota

(4)在分区上开启磁盘配额功能

#临时生效
mount -o remount,usrquota,grpquota /disk5
#永久生效,vim /etc/fstab 添加一行,需要重启系统
/dev/sdb5 /disk5 ext4 defaults,usrquota,grpquota 0 0

(5)建立磁盘配额配置文件
| 选项 | 说明 |
| :—- | :—- |
| -a | 扫描/etc/mtab文件中所有启动磁盘配额的分区,如果加入此参数,命令就不需要加入分区名 |
| -c | 不管原有的配置文件,重新扫描创建新的配置文件 |
| -u | 建立用户配额的配置文件 |
| -g | 建立组配额的配置文件 |
| -v | 显示扫描过程 |
| -m | 强制以读写方式扫描文件系统,一般扫描根分区时使用 |
| -f | 强制扫描文件系统,并写入新的配置文件,一般扫描新添加的硬盘分区时使用 |

quotacheck -avug

(6)设置用户的磁盘配置
| 选项 | 说明 |
| :—- | :—- |
| -u | 指定用户 |
| -g | 指定组 |
| -t | 设置宽限时间 |
| -p | 复制配额限制 |

edquota -u test1

(7)测试

#记得给test1用户disk5权限
chown test1 disk5
切换到test1用户,写入数据
dd if=/dev/zero of=/disk5/test bs=1M count=10



(7)其他命令

#查询用户限额
quota -vus test1
#复制配额,将test1的配额复制给test2
edquota -p test1 -u test2
#设置宽限期间
edquota -t
#非交互设定用户配额
setquota -u 用户名 容量软限制 容量硬限制 个数软限制 个数硬限制 分区名