磁盘配额在实际的生产环境下用处十分广泛,比如针对用户做磁盘配额,可以有效的防止某用户大量使用磁盘空间的情况,可以更好的管理磁盘空间。
要求:设置两个用户,开启磁盘配额并配置磁盘配额,设置其最低限制4.5M、最高限制5M、宽限时间1天。
1.设置进行磁盘配额的用户,在此新建两个用户,test、small共属于sky用户组。并设置密码;
[root@localhost ~]# groupadd test
[root@localhost ~]# useradd -m -g sky small #创建用户small,并设置其用户组sky。并强制建立家目录
[root@localhost ~]# useradd -m -g sky test
[root@localhost ~]# passwd sky
[root@localhost ~]# id test
uid=504(test) gid=504(sky) groups=504(sky) context=root:system_r:unconfined_t:SystemLow-SystemHigh
2.显示文件系统使用情况
[root@localhost ~]# df
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/sda1 8022104 2894968 4713064 39% /
tmpfs 127720 0 127720 0% /dev/shm
/dev/sdb1 3288944 71328 3050540 3% /mnt/sdb1
/dev/sdb2 1929100 35696 1795408 2% /mnt/sdb2
/dev/sdb3 972404 17640 905368 2% /mnt/sdb3
3.编辑/etc/fstab修改磁盘/dev/sdb3支持配额限制。
[root@localhost ~]# cat /etc/fstab
/dev/sdb3 /mnt/sdb3 ext3 defaults,usrquota,grpquota 0 0
4. 重启系统或者重新挂载文件系统使设置值生效。#mount-o remount /mnt/sdb3
5.进行磁盘配额检查
[root@localhost mnt]# quotacheck –avugc
quotacheck: Scanning /dev/sdb3 [/mnt/sdb3]done
quotacheck: Checked 3 directories and 4files
[root@localhost sdb3]# ll
-rw------- 1 root root 6144 08-01 05:44 aquota.group
-rw------- 1 root root 6144 08-01 05:44 aquota.user
6. 启动磁盘配额
[root@localhost sdb3]# quotaon -avug
/dev/sdb3 [/mnt/sdb3]: group quotas turnedon
/dev/sdb3 [/mnt/sdb3]: user quotas turnedon
设置磁盘配额如下所示:
[root@localhost sdb3]# edquota -u test
Disk quotas for user test (uid 504):
Filesystem blocks soft hard inodes soft hard
/dev/sdb3 0 45000 50000 0 0 0
文件内有七个栏目:
Filesystem:进行配额管制的文件系统。
blocks:已经使用的区块数量(单位1KB)
soft:block 使用数量的"软性"限制
hard:block 使用数量的"硬性"限制
inode:已经使用的 inode 数量
soft:inode 使用数量的"软性"限制
hard:inode 使用数量的"硬性"限制
此处,对用户test进行了磁盘配额的限制,最小磁盘配额4.5M,最大5M,单位是KB,
7.[root@localhost sdb3]# edquota -p testsmalll 将对用户test进行配置的磁盘配额信息复制给用户small。
8.[root@localhost sdb3]# edquota –t 设置磁盘配额宽限时间。将默认的7天修改为1天。
Grace period before enforcing soft limitsfor users:
Time units may be: days, hours, minutes, orseconds
Filesystem Block graceperiod Inode grace period
/dev/sdb3 1days 1days
9.查看配置信息是否配置进去
[root@localhost sdb3]# quota -vu test small
Disk quotas for user test (uid 504):
Filesystem blocks quota limit grace files quota limit grace
/dev/sdb3 0 45000 50000 0 0 0
Disk quotas for user small (uid 503):
Filesystem blocks quota limit grace files quota limit grace
/dev/sdb3 0 45000 50000 0 0 0
由于用户的磁盘配额尚未超过4.5M,所以宽限(grade)时间就不会出现。
10.对test、small所在的用户组sky进行磁盘配额限制,最小9M,最大10M,单位是KB,
[root@localhost ~]# edquota -g sky
Disk quotas for group sky (gid 504):
Filesystem blocks soft hard inodes soft hard
/dev/sdb3 0 90000 100000 0 0 0
11.[root@localhost ~]# quota -vg sky
Disk quotas for group sky (gid 504):
Filesystem blocks quota limit grace files quota limit grace
/dev/sdb3 0 90000 100000 0 0 0
12.因为启动脚本会将磁盘配额信息检测出来并自动写进去,默认情况下磁盘配额信息会主动启动,也可强制磁盘配额在启动一遍。#/sbin/quotaon-avugc
13.可以使用repquota显示磁盘配额信息的使用情况报告,如下所示:
[root@localhost ~]# repquota -av
*** Report for user quotas on device/dev/sdb3
Block grace time: 24:00; Inode grace time:24:00
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 17632 0 0 4 0 0
small -- 0 45000 50000 0 0 0
test -- 0 45000 50000 0 0 0
Statistics:
Total blocks: 7
Data blocks: 1
Entries: 3
Used average: 3.000000
14.使用quotaon或quotaoff启用或者禁用磁盘配额。
quotaoff -vaug如果-u或-g选项没有被指定,只有用户配额被禁用。如果只指定了-g 选项,只有组群配额会被禁用。
总结:磁盘配额除了监视系统上使用的磁盘空间,还可以通过实现磁盘配额来限制磁盘空间,因此当用户使用了过多的 磁盘空间或分区将要写满时,系统管理员就会接到警告。磁盘配额可以为个体用户配置也可以为用户组配置。这种灵活性既能够给每个用户分配一个较小的配额来处 理“个人”文件(如电子邮件和报告),又允许他们正从事的项目能够拥有较大的配额(假定项目有自己的组群)。
除此以外,配额不仅能够被设置成对所用磁盘块数量的控制,还能够被设置成对内节点数量的控制。由于内节点包含文件相关的信息,对内节点的控制能够控制可被创建的文件数量。
同时还可以通过设置磁盘配额防范系统攻击。根据该用户在系统中的权限和使用情况,合理为该用户设置使用空间,不影响系统常规的操作,同时加强了系统安全性。