一、磁盘配额

1.要求

1)内核版本:2.0版本以后
2)quota软件包:yum -y install quota(rpm -qa quota查询是否安装)

2.限制

1)对于分区(文件系统)做限制
2)对用户、组做控制
3)可以限制文件数量、文件大小(默认单位KB)
4)硬限制:用户不可超过限制值,超过后不可继续使用;软限制:用户超过限制值后,发出警告但用户依然可继续使用

3.使用挂载选项让其支持配额

新增10G磁盘,分区,并格式化
1)vim /etc/fstab
    /dev/sdb1   /data   ext4        defaults,usrquota,grpquota  0 0
详解
    usrquota:支持用户的配额
    grpquota:支持组的配额
2)mount -a
3)mkdir /data && chmod 777 /data        //将挂载目录设为完成权限,方便用户测试

4.生成配额文件

1)quotacheck -ugcv /data            //检查/date配额选项支持并生成配额文件
2)quotacheck -augcv             //检测所有支持配额的挂载目录并全部生成配额文件
选项
    -u:生成用户的文件
    -g:生成组的文件
    -c:create创建
    -v:详细信息
    -a:检测所有支持的配额挂载目录

5.编辑配额

1useradd u01 && useradd u02             //新建用户u01、u02
2groupadd mailusers && gpasswd -a u02 mailusers //新建组mailusers,并将u02用户加入到mailusers组
3usermod -g mailusers u02               //将u02用户的基本组改为mailusers

1)edquota -u u01                    //编辑u01用户的配额
    Filesystem                     blocks        soft               hard             inodes               soft          hard
    /dev/sdb1               0            10240             20480               0                    2             5
    挂载目录         已使用磁盘空间     空间软限制        空间硬限制       已使用文件数量      数量软限制     数量硬限制

2)edquota -g mailusers                  //编辑mailusers组的配额
    Filesystem                    blocks        soft             hard             inodes            soft         hard
    /dev/sdb1               0            10240             20480               0               2             5

6.启动配额

1)quotaon -ugv /data/                   //启用挂载目录用户、组的配额;quotaoff -ugv /data/关闭配额

7.验证

1)su - u01                      //切换到hehe用户
    测试用户hehe文件大小
2)dd if=/dev/zero of=/data/file1 bs=11M count=1     //创建测试文件11M,验证效果
    dm-2: warning, user block quota exceeded.
    1+0 records in
    1+0 records out
    11534336 bytes (12 MB) copied, 0.0501371 s, 230 MB/s
3)dd if=/dev/zero of=/data/file2 bs=22M count=1     //创建测试文件22M,验证效果
    dm-2: write failed, user block limit reached.
    dd: writing `/data/file2': Disk quota exceeded
    1+0 records in
    0+0 records out
    9437184 bytes (9.4 MB) copied, 0.0401697 s, 235 MB/s
测试用户u01的文件数量
1)touch /data/{1..3}                    //创建3个空测试文件,分别名为1、2、3
    dm-2: warning, user file quota exceeded
2)touch /data/{4..6}                    //创建3个空测试文件,分别名为4、5、6
    dm-2: write failed, user file limit reached.
    touch: cannot touch `/data/4': Disk quota exceeded
    touch: cannot touch `/data/5': Disk quota exceeded
    touch: cannot touch `/data/6': Disk quota exceeded
测试组的文件数量与大小和上方法相同;su - u02测试即可