磁盘配额实例详解

引言

这篇文章介绍一下磁盘配额;利用磁盘配额这种技术,系统管理员可以限制某个用户在某个硬盘分区可使用的大小,和可以创建文件数量的多少;目前Linux系统和Windows系统都支持这种技术。

文章目录

0×1.磁盘配额术语介绍

磁盘配额使用条件:

磁盘配额实施的对象是硬盘分区,并且Linux的内核必须支持磁盘配额这种技术,本例所使用的CentOS7是完全支持的;
磁盘配额的记录文件保存在开启磁盘配额分区的根目录下面,它们是aquota.user和aquota.group;
磁盘配额只对一般身份用户有效,对root权限用户无效;

磁盘配额的相关术语:

最低限制(软限制,soft):最低限制容量(可以被超过,但会出现警告,超过的部分会保存到宽限时间到期);
最高限制(硬限制,hard): 不能被超越的限制;
宽限时间:当用户使用的空间超过了最低限制但还没到达最高限制时,在这个宽限时间到期前必须将超额的数据降低到最低限制以下(默认为7天),当宽限时间到期,系统将自动清除超出的数据;

0×2.Linux磁盘配额实例

a.实验环境介绍

系统:CentOS7;
所用软件:quota,CentOS7默认已安装,CentOS6可能需要yum在线安装此软件,前面的文章已经介绍过yum的使用方法,这里不再赘述;
硬盘及分区:/dev/sda1(系统所在分区),/dev/sdb1(20G),已经格式化为ext4文件系统;
所有的磁盘配额操作都在/dev/sdb1中进行;

b.修改/etc/fstab添加支持磁盘配额选项

首先在系统新建一个用于挂载分区的目录,然后修改/etc/fstab添加一条自动挂载分区条目:

01#使用管理员权限在系统根目录,新建一个目录sdb1(并非一定要在根目录创建挂载目录)
02qing@qingsword.com:~$ sudo mkdir /sdb1
03 
04#使用vi编辑/etc/fstab,在末尾添加一行自动挂载,支持quota
05qing@qingsword.com:~$ sudo vi /etc/fstab
06 
07#将下面这一行添加到末尾,第一个字段为被挂载的分区,第二个字段为挂载的目录,第三个字段是被挂载的分区的文件系统类型,后面的几个字段是支持quota的参数。各字段用空格分隔
08/dev/sdb1 /sdb1 ext4 defaults,usrquota,grpquota 0 0
09 
10#保存,重新启动计算机,查看sdb1挂载信息
11qing@qingsword.com:~$ mount grep /dev/sdb1
12.....
13#只要括号里面显示"usrquota,grpquota",说明可以使用磁盘配额了
14/dev/sdb1 on /sdb1 type ext4 (rw,usrquota,grpquota)

c.创建磁盘配额配置文件

01#为了让其他用户可以使用这个分区,先将这个实验用的分区权限修改成777
02qing@qingsword.com:~$ sudo chmod 777 /sdb1
03 
04#创建磁盘配额配置文件,命令参数解释如下:
05#-v 显示扫描过程;
06#-u 针对扫描情况与目录的使用情况建立aquota.user;
07#-g 针对用户扫描文件与使用情况建立aquota.group;
08qing@qingsword.com:~$ sudo quotacheck -vug /sdb1
09 
10#接着就能看到分区目录中自动生成了两个配置文件
11qing@qingsword.com:~$ ls /sdb1
12aquota.group  aquota.user

d.实现磁盘配额限制

01#创建普通测试用户qingsword,配置密码
02qing@qingsword.com:~$ sudo useradd qingsword
03qing@qingsword.com:~$ sudo passwd qingsword
04 
05#配置qingsword用户使用/dev/sdb1分区的限额
06qing@qingsword.com:~$ sudo edquota -u qingsword
07 
08#输入上面的命令后,会进入一个vi编辑界面
09#对其中各字段解释如下:
10#Filesystem下显示实现磁盘配额的分区;
11#blocks下为当前已经使用的大小,不用修改;
12#soft为软限制,超出后会给出警告,超出的部分默认会保存7天;
13#hard为硬限制,不可超越的限制(软硬限制默认单位都是KB);
14#后面的两个相同的soft、hard分别表示分区中这个用户可以创建的文件数目软硬限制;
15#本例中设置,qingsword可以使用/dev/sdb1分区的软限制大小10KB,硬限制20KB,可创建的文件个数软限制是3个,硬限制5个;
16Disk quotas for user qingsword (uid 500):
17Filesystem blocks soft hard inodes soft hard
18/dev/sdb1    0     10   20    0     3    5
19 
20#修改保存退出后,开启这个分区的磁盘配额
21qing@qingsword.com:~$ sudo quotaon /sdb1

如果操作无误,现在磁盘配额就已经开始起作用了,使用qingsword用户登录测试如下:

01#切换到qingsword用户
02qing@qingsword.com:~$ su qingsword
03 
04#进入/dev/sdb1分区
05qingsword@qingsword.com:~$  cd /sdb1
06 
07#使用dd命令进行文件写入测试,
08# if=/dev/zero 表示从"/dev/zero"文件输出,of=/sdb1/testfile1 表示输入到"/sdb1/testfile1"文件中,也就是,从/dev/zero这个文件中读取垃圾数据写入/sdb1/testfile1这个文件中;
09# bs=1K 表示一次读取写入的大小是1KB,count=12 表示读取12次;
10#所以理论上最后写入/sdb1/testfile1的数据应该是12KB
11qingsword@qingsword.com:/sdb1$ dd if=/dev/zero of=/sdb1/testfile1 bs=1K count=12
12 
13sdb1: warning, user block quota exceeded.
14#因为针对qingsword用户在这个分区的软限制设置是10KB,所以这里给出了警告信息
1512+0 records in
1612+0 records out
1712288 bytes (12 kB) copied
18 
19#可以查看到testfile1的大小是12KB
20qingsword@qingsword.com:/sdb1$ ls -l testfile1
21-rw-rw-r--. 1 qingsword qingsword 12288 Jan 13 16:24 testfile1
22 
23#测试向第二个文件/sdb1/testfile2写入10KB垃圾数据
24qingsword@qingsword.com:/sdb1$ dd if=/dev/zero of=/sdb1/testfile2 bs=1K count=10
25 
26sdb1: write failed, user block limit reached.
27dd: writing `/sdb1/testfile2': Disk quota exceeded
28#出现了一个警告,并且下方显示只有8K的数据被复制,这是因为我们设置的硬限制是20KB
299+0 records in
308+0 records out
318192 bytes (8.2 kB) copied
32 
33#第一个文件已经占用了12KB的数据,第二个文件仅写入了8KB的数据,硬限制是不能被超越的,而软限制10KB是可以被超越的,超越的数据,会在这个分区中默认保存7天,然后系统将自动删除这些数据
34qingsword@qingsword.com:/sdb1$ ls -l testfile1 testfile2
35-rw-rw-r--. 1 qingsword qingsword 12288 Jan 13 16:33 testfile1
36-rw-rw-r--. 1 qingsword qingsword  8192 Jan 13 16:33 testfile2
37 
38#下面测试文件数量限制,按照前面的介绍和我们的配置,超过3个文件的软限制时会给出警告,而无法超过5个文件的硬限制,使用touch来创建空文件
39qingsword@qingsword.com:/sdb1$ touch testfile3
40 
41#超过3个文件时出现了警告
42qingsword@qingsword.com:/sdb1$ touch testfile4
43sdb1: warning, user file quota exceeded.
44 
45 
46qingsword@qingsword.com:/sdb1$ touch testfile5
47 
48#touch第6个文件的时候提示创建失败
49qingsword@qingsword.com:/sdb1$ touch testfile6
50sdb1: write failed, user file limit reached.
51touch: cannot touch `testfile6': Disk quota exceeded
52 
53#超过文件数量软限制的部分同样会被保存7天,然后被系统自动删除
54qingsword@qingsword.com:/sdb1$ ls
55aquota.group  testfile2  testfile4
56aquota.user   testfile1   testfile3  testfile5
57 
58#查看当前用户的磁盘配额使用情况,两个已经超出的配置分别是文件大小和文件数量,宽限时间还有6天
59qingsword@qingsword.com:/sdb1$ quota -vugs
60Disk quotas for user qingsword (uid 1002):
61Filesystem space quota limit grace files quota limit grace
62dev/sdb1    20K*  10K  20K   6days   5*    3     5   6days
63 
64#可以使用root权限修改宽限时间
65qing@qingsword.com:~$ sudo edquota -t

e.关闭磁盘配额

 
01#关闭单个磁盘的磁盘配额
02qing@qingsword.com:~$ sudo quotaoff /sdb1
03 
04#关闭所有已经开启的磁盘配额
05qing@qingsword.com:~$ sudo quotaoff -a
06 
07#反之,开启所有磁盘配额
08qing@qingsword.com:~$ sudo quotaon -a
09 
10#如果不再使用磁盘配额,可以将配置文件也删除
11qing@qingsword.com:~$ sudo rm -rf /sdb1/aquota.*
12 
13#最后删除/etc/fstab中的自动挂载即可

*转载请注明来自:晴刃(QingSword.COM)

*原文连接:http://www.qingsword.com/qing/938.html

转载于:https://www.cnblogs.com/han1094/p/6283533.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第1章 Linux服务器的搭建与测试 1.1 Linux的安装 1.1.1 Linux简介 1.1.2 Red Hat Enterprise Linux 5新特性介绍 1.1.3 Red Hat Enterprise Linux 5的安装 1.2 常规网络配置 1.2.1 配置主机名 1.2.2 使用ifconfig配置IP地址及辅助IP地址 1.2.3 禁用和启用网卡 1.2.4 更改网卡MAC地址 1.2.5 route命令设置网关 1.2.6 网卡配置文件 1.2.7 setup命令 1.2.8 修改resolv.conf设置DNS 1.3 网络环境测试 1.3.1 ping命令检测网络状况 1.3.2 netstat命令 1.3.3 nslookup测试域名解析 1.4 本章习题 第2章 Samba服务 2.1 Samba原理 2.1.1 Samba概述 2.1.2 Samba应用环境 2.1.3 Samba工作原理 2.2 安装Samba服务 2.2.1 Samba所需软件 2.2.2 Samba的安装 2.3 Samba常规服务器配置 2.3.1 主要配置文件smb.conf 2.3.2 Samba服务日志文件 2.3.3 Samba服务密码文件 2.3.4 Samba的启动与停止 2.3.5 share服务器实例详解 2.3.6 user服务器实例详解 2.4 Samba高级服务器配置 2.4.1 用户账号映射 2.4.2 客户端访问控制 2.4.3 设置Samba的权限 2.4.4 Samba的隐藏共享 2.5 Samba客户端配置 2.5.1 Linux客户端访问Samba共享 2.5.2 Windows客户端访问Samba共享 2.6 Samba的打印共享 2.7 Samba企业实战与应用 2.7.1 企业环境及需求 2.7.2 需求分析 2.7.3 解决方案 2.8 Samba排错 2.9 本章习题 2.10 smb.conf字段汇总 第3章 DHCP服务 3.1 DHCP原理 3.1.1 DHCP概述 3.1.2 DHCP的应用环境 3.1.3 DHCP术语 3.1.4 DHCP工作原理 3.2 安装DHCP服务 3.2.1 DHCP所需软件 3.2.2 DHCP的安装 3.3 DHCP常规服务器配置 3.3.1 主配置文件dhcpd.conf 3.3.2 常用参数介绍 3.3.3 常用声明介绍 3.3.4 常用选项介绍 3.3.5 租约数据库文件 3.3.6 应用案例Ⅰ 3.3.7 DHCP的启动与停止 3.3.8 IP地址绑定 3.3.9 应用案例Ⅱ 3.4 DHCP高级服务器配置 3.4.1 DHCP规划 3.4.2 DHCP多作用域设置 3.4.3 DHCP中继代理 3.5 DHCP客户端配置 3.5.1 Linux客户端配置 3.5.2 Windows客户端配置 3.6 DHCP服务配置排错 3.6.1 dhcpd 3.6.2 租约文件 3.6.3 ping 3.6.4 MULTICAST 3.6.5 查看系统日志 3.7 本章习题 3.8 字段汇总 第4章 DNS服务 4.1 DNS原理 4.1.1 DNS简介 4.1.2 域名空间 4.1.3 区(Zone) 4.1.4 主域名服务器与辅助域名服务器 4.1.6 DNS查询原理及流程 4.1.7 正向解析与反向解析 4.1.8 资源记录 4.2 安装DNS服务 4.2.1 BIND简介 4.2.2 DNS所需软件 4.2.3 DNS的安装 4.3 DNS常规服务器配置 4.3.1 主配置文件named.conf 4.3.2 配置正向解析区域 4.3.3 配置反向解析区域 4.3.4 区域文件与资源记录 4.3.5 SOA资源记录 4.3.6 NS记录 4.3.7 A资源记录 4.3.8 DNS应用案例Ⅰ 4.3.9 其他常用资源记录 4.3.10 根区域设置及对应区域文件 4.3.11 DNS的启动与停止 4.3.12 host命令测试DNS 4.3.13 rndc 4.3.14 DNS应用案例Ⅱ 4.4 DNS高级服务器配置 4.4.1 辅助DNS服务器及区域数据同步 4.4.2 子域与区域委派 4.4.3 转发服务器 4.4.4 缓存服务器(Caching-only Name Server) 4.5 DNS客户端配置 4.5.1 RHEL5客户端配置 4.5.2 Windows客户端配置 4.6 DNS企业实战与应用 4.6.1 企业环境 4.6.2 需求分析 4.6.3 解决方案 4.7 DNS排错 4.7.1 rndc reload 4.7.2 查看启动信息 4.7.3 查看端口 4.7.4 权限问题 4.8 本章习题 4.9 字段汇总 第5章 Sendmail服务 5.1 Sendmail原理 5.1.1 Sendmail概述 5.1.2 邮件系统工作原理 5.1.3 简单邮件传输协议(SMTP) 5.1.4 POP3协议 5.1.5 IMAP协议 5.1.6 邮件中继 5.1.7 邮件认证机制 5.2 安装Sendmail服务 5.2.1 Sendmail服务软件简介 5.2.2 Sendmail服务安装 5.2.3 相关的配置文档 5.3 Sendmail常规服务器配置 5.3.1 sendmail.cf和sendmail.mc 5.3.2 m4工具的使用 5.3.3 local-host-names文件 5.3.4 Sendmail的启动与停止 5.3.5 POP3和IMAP 5.3.6 Sendmail应用案例Ⅰ 5.3.7 别名和群发设置 5.3.8 利用access文件设置邮件中继 5.3.10 Sendmail应用案例Ⅱ 5.3.10 Sendmail调试 5.4 Sendmail高级服务器配置 5.4.1 Sendmail认证 5.4.2 邮箱容量设置 5.4.3 POP3S和IMAPS设置 5.5 Sendmail客户端配置 5.5.1 Linux客户端 5.5.2 Windows客户端 5.6 Sendmail服务企业实战与应用 5.6.1 企业环境 5.6.2 需求分析 5.6.3 解决方案 5.7 Sendmail排错 5.7.1 无法定位邮件服务器 5.7.2 身份验证失败 5.7.3 邮箱配额限制 5.8 本章习题 5.9 字段汇总 第6章 FTP服务 6.1 FTP原理 6.1.1 FTP概述 6.1.2 FTP工作原理 6.1.3 主动与被动模式 6.1.4 FTP用户分类 6.2 安装FTP服务 6.2.1 vsftp所需软件 6.2.2 vsftp的安装 6.2.3 vsftp相关文档 6.3 常规服务器配置 6.3.1 主配置文件vsftpd.conf 6.3.2 实现匿名用户访问 6.3.3 实现实体用户访问 6.3.4 FTP应用案例Ⅰ 6.3.5 限制用户目录 6.3.6 限制服务器连接数 6.3.7 定制FTP目录欢迎信息 6.3.8 限制下载速度 6.3.9 FTP的启动与停止 6.3.10 FTP应用案例Ⅱ 6.4 高级服务器配置 6.4.1 设置VSFTP虚拟账号 6.4.2 使用xinetd控制vsftpd 6.5 客户端配置 6.5.1 Linux客户端配置 6.5.2 Windows客户端配置 6.6 企业实战与应用 6.6.1 企业环境 6.6.2 需求分析 6.6.3 解决方案 6.7 FTP排错 6.8 本章习题 6.9 字段汇总 第7章 Web服务 7.1 WWW原理 7.1.1 WWW概述 7.1.2 WWW工作原理 7.1.3 LAMP模型 7.1.4 SSL和CA 7.2 安装Web服务 7.2.1 Apache简介 7.2.2 Apache所需软件 7.2.3 Apache的安装 7.3 Apache常规服务器配置 7.3.1 主配置文件httpd.conf 7.3.2 根目录设置(ServerRoot) 7.3.3 超时设置 7.3.4 客户端连接数限制 7.3.5 设置管理员邮件地址 7.3.6 设置主机名称 7.3.7 设置文档目录 7.3.8 设置首页 7.3.9 网页编码设置 7.3.10 Apache的启动与停止 7.3.11 Web应用案例 7.3.12 Apache日志设置 7.3.13 目录设置 7.3.14 虚拟目录 7.3.15 为Apache建立专门的用户和组 7.4 Apache高级服务器配置 7.4.1 配置Apache虚拟主机 7.4.2 Apache访问控制 7.4.3 htaccess实现用户认证 7.4.4 实现HTTPS 7.5 企业实战与应用 7.5.1 企业环境及需求 7.5.2 需求分析 7.5.3 解决方案 7.6 本章习题 7.7 字段汇总 第8章 iptables 8.1 iptables原理 8.1.1 防火墙概述 8.1.2 iptables简介 8.1.3 iptables工作原理 8.1.4 NAT工作原理 8.2 安装iptables 8.2.1 iptables的安装 8.2.2 iptables的启动与停止 8.3 防火墙配置 8.3.1 iptables的基本语法 8.3.2 设置默认策略 8.3.3 查看iptables规则 8.3.4 添加、删除、修改规则 8.3.5 保存规则与恢复 8.3.6 常用实例及技巧分析 8.3.7 使用日志监控iptables 8.4 NAT(网络地址转换) 8.4.1 iptables实现NAT 8.4.2 配置SNAT 8.4.3 配置DNAT 8.4.4 MASQUERADE 8.4.5 连接跟踪 8.5 企业实战与应用 8.5.1 企业环境及需求 8.5.2 需求分析 8.5.3 解决方案 8.6 本章习题 8.7 字段汇总 第9章 代理服务 9.1 代理服务原理 9.1.1 什么是代理服务器 9.1.2 代理服务器的工作原理 9.1.3 代理服务器的作用 9.2 安装Squid 9.2.1 Squid简介 9.2.2 Squid的安装 9.3 Squid常规服务器配置 9.3.1 Squid主配置文件squid.conf 9.3.2 设置Squid监听的端口号 9.3.3 内存缓冲设置 9.3.4 Squid磁盘缓存 9.3.5 设置缓存日志 9.3.6 设置访问日志文件 9.3.7 设置网页缓存日志 9.3.8 设置Squid的拥有者 9.3.9 设置Squid所属组 9.3.10 设置DNS服务器地址 9.3.11 设置Squid可见主机名 9.3.12 设置管理员E-mail地址 9.3.13 设置访问控制列表 9.3.14 Squid的启动和停止 9.3.15 代理服务应用案例 9.4 Squid高级服务器配置 9.4.1 代理服务器用户访问控制 9.4.2 实现透明代理 9.4.3 反向代理加速Web网站 9.5 代理客户端配置 9.5.1 Linux客户端配置 9.5.2 Windows客户端配置 9.6 Squid企业实战与应用 9.6.1 企业环境 9.6.2 需求分析 9.6.3 解决方案 9.6.4 真实案例配置文件 9.7 本章习题 9.8 字段汇总 第10章 NFS 10.1 NFS原理 10.1.1 NFS概述 10.1.2 RPC简介 10.1.3 NFS工作原理 10.2 安装NFS 10.2.1 NFS所需软件 10.2.2 NFS的安装 10.2.3 NFS相关文档 10.3 常规服务器配置 10.3.1 架设流程 10.3.1 主配置文件exports 10.3.2 NFS应用实例 10.3.3 NFS的启动与停止 10.3.4 exportfs命令 10.3.5 配置NFS固定端口 10.3.6 测试NFS服务 10.4 客户端配置Linux客户端的使用 10.5 NFS排错 10.6 本章练习 10.7 字段汇总 第11章 NIS 11.1 NIS原理 11.1.1 NIS简介 11.1.2 NIS工作原理 11.1.3 NIS工作模式 11.2 NIS的安装 11.2.1 NIS所需软件 11.2.2 安装NIS 11.2.3 NIS相关文档 11.3 服务器端配置 11.3.1 设置NIS域名 11.3.2 主配置文件 11.3.3 创建NIS数据库 11.3.4 建立信任群 11.3.5 配置多NIS服务器 11.3.6 NIS固定端口设置 11.3.7 自动挂载NIS用户主目录 11.3.8 启动与停止NIS服务 11.3.9 NIS应用案例 11.4 客户端配置 11.4.1 所需软件 11.4.2 加入NIS域 11.4.3 修改hosts文件 11.4.4 修改密码验证方式 11.4.5 修改/etc/yp.conf文件 11.4.6 重新启动ypbind服务 11.4.7 客户端检测 11.4.8 修改用户密码 11.5 NIS排错 11.5.1 客户端无法查询NIS信息 11.5.2 添加新的数据无法生效 11.6 练习题 第12章 网络访问 12.1 远程登录服务概述 12.1.1 什么是远程登录 12.1.2 远程登录的特点 12.2 Telnet服务 12.2.1 Telnet概述 12.2.2 Telnet工作原理 12.2.3 安装Telnet程序 12.2.4 Telnet的访问控制 12.2.5 限制最大连接数 12.2.6 Telnet服务的启动与停止 12.2.7 防火墙设置 12.2.8 更改Telnet端口号 12.2.9 Linux客户端 12.2.10 Windows客户端 12.3 SSH服务 12.3.1 SSH概述 12.3.2 安装OpenSSH 12.3.3 SSH的启动与停止 12.3.4 OpenSSH配置文件 12.3.5 OpenSSH身份验证 12.3.6 OpenSSH客户端配置 12.4 本章习题 12.5 字段汇总

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值