一、基础知识介绍
1.磁盘资源耗尽故障
(1): 故障原因
(2):故障现象
(3):解决思路
2.磁盘配额
(1):磁盘配额的概念:磁盘配额是指计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。
(2):进行磁盘配额的原因:如果不进行磁盘配额,那么每个用户都可以向磁盘中写入大量的数据,这样很容易造成磁盘资源耗尽,而且还存在一个潜在的安全性问题----如果有入侵者拿到任意一个普通账户的信息,如果没有进行磁盘配额,那么入侵者就可以向磁盘中写入大量的垃圾文件来耗尽磁盘资源。这样就可能会导致部分程序无法运行,甚至系统崩溃。
(3):实现磁盘限额的条件
(4):Linux磁盘限额的特点
二、实现磁盘配额的步骤
1.安装quota软件包
rpm -ivh /media/RHEL_6.5\ x86_64\ Disc\ 1/Packages/quota-3.17-20.el6.x86_64.rpm
2.创建挂载目录,并修改权限为777,让普通用户对挂载目录具有写入权限
mkdir sdb1
chmod 777 sdb1/
ls -lda sdb1/
3.启用文件系统的配额支持(添加usrquota、grpquota挂载参数)
vim /etc/fstab
修改文件内容如下
/dev/sdb1 /sdb1 ext4 defaults,usrquota,grpquota 0 0
4.重启计算机
reboot
5.查看是否成功挂载
mount | grep /dev/sdb1
6.关闭内核防火墙(若不关闭会提示出错)
setenforce 0
7.检测磁盘配额并创建配额文件
quotacheck -ugcv 文件系统
quotacheck -augcv
-a:检测所有可用的分区
-u:检测用户配额
-g:检测组配额
-c:创建配额数据文件
-v:显示执行过程信息
quotacheck -ugcv /dev/sdb1
ls -l /sdb1/aquota.*
8.创建用户和组
useradd zhangsan
passwd zhangsan
groupadd user
9.编辑用户和组帐号的配额设置(edquota命令)
edquota -u 用户名(编辑用户配额)
edquota -g 组名(编辑组配额)
第1列:此处不填写(文件系统名)
第2列:此处不填写(系统自动检测的已使用配额值)
第3列:磁盘容量软限制
第4列:磁盘容量硬限制
第5列:此处不填写(系统自动检测的已使用配额值)
第6列:文件个数软限制
第7列:文件个数硬限制
edquota -u zhangsan
修改内容为下面红色方框中的数值
edquota -g user
修改内容为下面红色方框中的数值
10.启用文件系统的磁盘配额功能
quotaon -ugv /sdb1
注意:在执行这步之前最好再执行一下关闭selinux(setenforce 0)的操作,因为如果没有关闭selinux的话,那么启用文件系统的配额功能时就会提示权限不够
11.验证
(1):切换到zhangsan用户下的/sdb1目录下
su - zhangsan
cd /sdb1
(2):验证磁盘配额是否生效
touch 1.txt 2.txt...6.txt(是否有出错提示)
由上图可以看出来,虽然zhangsan用户创建了6个文件,可实际上只创建了5个文件,这样因为磁盘配额中节点数目的上限就是5,也就是说,zhangsan用户最多创建5个文件,一旦超过5个文件,zhangsan用户就无法创建了。
rm -rf *.txt(一定要先执行这一步,因为如果不执行这一步的话,不管是多大的文件都写不进去了,因为刚才已经达到了节点数的上限)
dd if=/dev/zero of=myfile bs=1M count=120(是否有出错提示)
ls -lh 文件名(查看写入的文件的字节数)
(3):关闭文件系统的磁盘配额功能
su root(必须要切换到root用户,zhangsan用户没有权限关闭磁盘配额功能)
quotaoff -ugv /sdb1
(4):再次切换到zhangsan用户,测试创建文件是否受限
su zhangsan
cd /sdb1
touch 1.txt 2.txt...6.txt(是否有出错提示)
由上图可以看出,zhangsan用户创建文件的时候数目不再受限。