目录
1.Quota磁盘配额
1.1.1.为什么要有Quota磁盘配额:
由于Linux是多任务多用户的操作系统,所以多个用户使用同一块硬盘的情况时有发生。而Linux默认又不限制每个用户使 用磁盘空间的大小。假如某个用户因为疏忽或恶意沾满磁盘空间,那么会导致磁盘无法写入甚至崩溃。为了保证系统磁盘 得到足够的保护,我们需要对用户和组进行磁盘空间使用限制。
1.21..Quota能做什么?
限制用户和组的容量限制和文件数量限制(block和inode限制block就限制了用户可以使用的磁盘容量,限制inode就可 以限制用户新建的文件数量。
1.3.Quota磁盘配额开启条件
盘配额是针对分区进行的设置,无法实现“某用户在系统中共计只能使用500MB磁盘空间”只能设置“某用户在某分区 能使用500MB空间”这样的限制。
内核必须支持quota:在cent5.x以后都已经默认支持quota功能
查看quota命令是否安装:rpm -qa | grep quota
1.4.磁盘配额的基本概念:
软限制(soft):用户在低于软限制的时候可以正常使用磁盘,但如果超过软限制之后且低于硬限制的时候,每次用户登录 系统时系统会发出警告信息。但是,如果在宽限天数到期前将容量降低到软限制范围内,宽限天数会停止。
硬限制(hard):表示用户的用量绝对不会超过这个限制值,如果超过硬限制则会锁住该用户对磁盘的使用权。
宽限天数:宽限时间只有在用户的磁盘用量介于软限制和硬限制之间时会出现。由于达到硬限制的时候用户的磁盘使用权 会被锁住。为了避免用户使用量直接到达硬限制磁盘使用权限被锁住,所以设置了软限制。当磁盘使用量超过软限制即将 到达硬限制时,系统会进行警告,但也会给时间让用户自行管理磁盘。宽限天数默认为7天。
2.磁盘配额实战
第一步:准备工作
添加新的硬盘或分区,进行格式化挂载
(1) fdisk -l #查看新硬盘
(2)fdisk /dev/sdb #进行分区 然后 ls /dev/sdb* 查看一下
(3)mkfs.ext4 /dev/sdb1 #写入文件系统
(4)mkdir /disk1 #创建挂载点目录/disk1
(5) mount /dev/sdb1 /disk1 #挂载并df -h 查看一下
第二步:开启磁盘配额
(1)mount -o remount,usrquota,grpquota /dev/sdb1 #开启磁盘配额
(2)mount | grep sdb1 #查看是否有usrquota,grpquota
开启磁盘配额方法二:vim /dev/fstable #打开配置文件
添加:/dev/sdb1 /disk1 /ext4 defaults,usrquota,grpquota 0 0
第三步:关闭setenforce
setenforce 0 临时关闭。
可以用getenforce 命令查看一下,如果输出有disable,说明已经被永久关闭了
如果想永久关闭:vim /etc/selinux/config
把SELINUX=enforcing 改为 SELINUX=disable
想下次开启,就需要通过修改配置文件开启。
第四步:创建用户和组
(1)useradd hf01 和 useradd hf02 #创建用户hf01和hf02
(2)groupadd xxhf #创建组xxhf
(3)echo “123” | passwd --stdin hf01 #依次给hf01和hf02用户设置密码
(4)gpasswd -a hf01 xxhf #依次将hf01和hf02用户加入xxhf组内
第五步:生成文件
quotacheck -avug
#创建生产aquota.group和aquota.user文件目录
-a:扫描在/etc/fstab(/etc/mtab文件),加入quota设置的分区。
-u:针对用户扫描文件与目录的使用情况,会新建aquota.user文件。
-g:针对用户组扫描文件与目录的使用情况,会新建aquota.group文件。
-v:显示扫描过程。
-c:清除原有的配置文件,重新建立新的配置文件。
-m:强制以读写的方式扫描文件系统。
-f:强制扫描文件系统,并写入新的配置文件。
选项中-m和-f是在文件系统可能已经启动quota,但还想要重新扫描文件系统的时候。系统会要求你加入那两个参数可以 用ls /disk1/查看这两个文件
第六步:开启磁盘配额设置
3.edquota命令详解
磁盘配额限制命令格式:edquota 选项 用户或组名
选项:
-u 用户名
-g 组名
-t 宽限时间
-p 复制磁盘配额规则
edquota -u hf01 #通过修改配置文件实现限制:soft软限制,hard硬限制
第一列:说明quota针对那个分区
第二列:已占用容量。
第三列:磁盘容量的软限制(soft)单位为KB。
第四列:磁盘容量的硬限制(hard)单位为KB。
第五列:已占用文件数。
第六列:文件数量的软限制。
第七列:文件数量的硬限制。
(当soft和hard为0时代表不做限制。)
4.quotaon命令详情
#开启磁盘配额,使限制生效 quotaoff关闭
chmod 777 /disk1 #权限给足
第七步:用户测试
用用户hf01登录进行测试:
dd if=/dev/zero of=/disk1/u1 bs=1M count= 50 #从/dev/zero中拷贝数据到/disk1/u1文件中,一次写1MB,写50次。
依次继续,测试block的软硬限制的效果
在/disk1目录下touch创建文件,测试inode的软硬限制的效果
随时用ll -h /disk1/进行查看文件数据大小和文件名数量
随时用edquota -u hf01 查看记录的变化和磁盘配额限制
edquota -p hf01 -u hf02 #将用户1的磁盘配额限制复制给用户2继续用用户2做实验
第八步:对组进行限制测试
将用户hf01和hf02创建的文件都删除干净
切换到用户1后:newgrp xxhf 将其当前所属组改为xxhf,用id命令查看
切换到用户2后:newgrp xxhf 将其当前所属组改为xxhf,用id命令查看
对xxhf组设置限制:建议硬限制大于单个用户,小于用户1+用户2的限制
用root用户:edquota -g xxhf 进行限制
分别切换到用户1和用户2,并在/disk1目录下创建文件和拷贝数据来进行测试。
随时用ll -h /disk1/查看文件名数量和数据大小及所属组。
随时用edquota -g xxhf和edquota -u hf01来查看限制和记录的变化
注:repquota -uvs /dev/sdb1 #直接用root查看软硬限制和宽限天数
5.repquota 子选项 分区名或挂载点名称
子选项:
-a 根据/etc/mtab文件查询所有分区的磁盘配额
-u 查询用户配额
-g 查询组peie
-v 显示详情
-s 以常见单位显示