centos6/7磁盘配额(gpt)
磁盘配置实验规划:
1.添加磁盘,创建分区,格式化挂载
1.1 首先查看系统是否支持磁盘配额:
命令:grep "CONFIG_QUOTA" /boot/config-3.10.0-957.el7.x86_64
1.2 查看挂载分区是否有usrguota和grpquota两个属性
命令:mount | grep “分区(挂载点)”mount | grep "/sdktest"
在这里需要提前安装gdisk:yum -y install gdisk
安装好后格式化分区sdb1:mkfs.xfs /dev/sdb1
将sdb1挂载到/sdktest:mount /dev/sdb1 /sdktest
查看是否有usrguota和grpquota两个属性:
[root@localhost dev]# mount | grep sdktest
/dev/sdb1 on /sdktest type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
1.3.添加usrguota和grpquota两个属性
(1)交互式给值:
echo "/dev/sdb1 /sdktest xfs defaults,usrquota,grpquota 0 0" >> /etc/fstab
(2)非交互式:
首先通过blkid 查看sdb1的UUID:
[root@localhost dev]# blkid
/dev/sdb1: UUID="c71548a8-9fa1-45d4-80b6-2597bd8c756d" TYPE="xfs"
然后编辑fstab:vim /etc/fstab
UUID=c71548a8-9fa1-45d4-80b6-2597bd8c756d /sdktest xfs defaults,usrquota,grpquota 0 0
这时需要umount /sdktest
mount -a
到这里磁盘属性usrquota和grpquota就实现了
2.规划用户和组的配额
要求:三个用户创建出的文件要占用组的额度(两种方法)
(1)让old组作为三个用户的初始组
(2)设置sdktest目录有sgid权限,修改movie目录的所属组为old组
2.1采用(1)创建用户 pp001 pp002 pp003
groupadd young
useradd -g young pp001
useradd -g young pp002
useradd -g young pp003
echo "123" | passwd --stdin pp001/pp002/pp003
2.2.磁盘配额规划:
空间硬限制 空间软限制 数量硬限制 数量软限制
young: 硬: 500M 软:450M 文件数不限制
pp001: 硬: 50M 软:40M 硬:10个 软:8个
pp002: 硬: 250M 软:200M 文件数不限制
pp003: 硬: 250M 软:200M 文件数不限制
3.生成磁盘配额配置文件,用来保存配额(c6需要提前创建,c7不需要
)
c6 :quotacheck -avug
`
4.编写配额规则,实现用户和组的配额限制
CentOS 6:
setquota -u 用户名 软(容) 硬(容) 软(数) 硬(数) 分区名
注意:此种操作自动将对应设置写入了配置文件,属于永久生效。
CentOS 7:
xfs_quota -x -c 'limit bsoft=40m bhard=50m isoft=8 ihard=10 -u pp001 ' /sdktest
xfs_quota -x -c 'limit bsoft=200m bhard=250m -u pp002 ' /sdktest
xfs_quota -x -c 'limit bsoft=200m bhard=250m -u pp003 ' /sdktest
xfs_quota -x -c 'limit bsoft=450m bhard=500m -g young ' /sdktest
-x:专家模式
-c:用来指定后续规则作为quota命令的参数(若不指定默认以交互式进行)
5.修改已设置的配额
编辑配置文件修改限制(6和7通用)
edquota -u pp001
Disk quotas for user pp001 (uid 1019):
Filesystem blocks soft hard inodes soft hard
/dev/sdb1 0 40960 51200 0 8 10
6.启用配额(6需要单独执行,7默认启用)
开启:quotaon -ugv /dev/sdb1
关闭:quotaoff -ugv /dev/sdb1
7.查看设置好的配额
(1)查询用户或者组的配额
-u用户名 -g组名 -v显示详细信息 -s以常见单位显示大小
quota -uvs // -gvs + 用户名/组名
(2)查看制定分区的磁盘配额:repquota 选项 分区名
repquota -ugvs /dev/sdb1
8.验证配额是否有效
在切换普通用在/sdktest/创建文件时需要普通用户对/sdktest/有rwx权限!!!!
setfacl -m u:pp001:rwx /sdktest
setfacl -m u:pp002:rwx /sdktest
setfacl -m u:pp003:rwx /sdktest
切换到普通用户pp001 生成文件查看大小是否受到限制:
dd if=/dev/zero of=/sdktest/pp001.txt bs=1M count=80
在查看配额是否生效时,有多种测试办法:
1:在不超过组大小的情况下
在pp001内dd一个小于等于40m的文件,这时再创建文件是可以的(文件数在要求内)
在pp001内dd一个大于50m的文件,这时是不可以创建文件了(文件数在要求内)
dd文件在超过软限制后不超过硬限制,这时是可以再进行创建对文件的(文件数在要求内)
dd文件在超过硬限制后,文件不可以再进行创建。
2:在超过组大小的情况下
pp003即使没有超过软限制也没超过硬限制,仍然不可以创建!
笔者用的是centos7完成的实验。