1. 检查内核情况

检查当前内核是否支持quota,当前内核配置文件在/boot下

如果当前内核不支持quota,需要重新编译内核将quota support编译进核心:

File systems  --->  [*] Quota support

2. 修改/etc/fstab,对所选文件系统激活配额选项

vim/etc/fstab

3. 重新挂载文件系统

添加了 usrquota 和 grpquota 选项后,重新挂载每个相应 fstab 条目被修改的文件系统。如果某文件系统没有被任何进程使用,使用 umount 命令后再紧跟着 mount 命令来重新挂载这个文件系统。如果某文件系统正在被使用,要重新挂载该文件系统的最简捷方法是重新引导系统或者使用命令:

[root@station1 ~]#mount -o remount,usrquota,grpquota /home。

一定不要忘记usrquota,grpquota

4. 扫描相应文件系统,用quotacheck命令生成基本的配额文件。

[root@station1 ~]# quotacheck-cugmv /home

运行 quotacheck 命令,quotacheck 命令检查启用了配额的文件系统,并为每个文件系统建立一个当前磁盘用来的表。该表会被用来更新操作系统的磁盘用量文件。此外,文件系统的磁盘配额文件也被更新。 要在文件系统上创建配额文件

所用选项如下:

a — 检查所有启用了配额的在本地挂载的文件系统

v — 在检查配额过程中显示详细的状态信息

u — 检查用户磁盘配额信息

g — 检查组群磁盘配额信息

quotacheck 运行完毕后,和启用配额(用户和/或组群)相应的配额文件中就会写入用于每个启用了配额的文件系统(如 /home )的数据。

要定期运行它的最简单方法是使用 cron。以根用户身份,你既可以使用 crontab -e 命令来调度定期的 quotacheck,也可以在以下目录之一内放置一个运行 quotacheck 的脚本(使用最时候你需要的间隔期间):

• /etc/cron.hourly

• /etc/cron.daily

• /etc/cron.weekly

• /etc/cron.monthly

最精确的配额统计数据可以在所分析的文件系统没有被活跃使用时获得。因此,cron 任务应该在文件系统被最少使用时调度。如果这一时间在使用配额的文件系统中并不统一,则使用多个 cron 任务在不同的时间为每个文件系统运行 quotacheck。

5. 用quotaon命令激活配额。

[root@station1 ~]#quotaon /home

6. 用edquota命令,对特定用户采用配额限制。edquota –u username

要为用户配置配额,以根用户身份在 shell 提示下执行以下命令:

edquota -u username

为每个你想实现配额的用户执行该步骤。例如,如果在 /etc/fstab 中为 /home 分区启用了配额,执行了 edquota testuser 命令后,系统默认的编辑器

中就会有如图显示:

文件内有七个栏目:

Filesystem => 进行配额管制的文件系统。

blocks => 已经使用的区块数量(单位1KB)

soft => block 使用数量的"软性"限制

hard => block 使用数量的"硬性"限制

inode => 已经使用的 inode 数量

soft => inode 使用数量的"软性"限制

hard => inode 使用数量的"硬性"限制

edquota –t和 edquota 命令相似,这个命令也会在文本编辑器中打开当前的文件系统配额:

Grace period before enforcing soft limits for users:

Time units may be: days, hours, minutes, or seconds

Filesystem Block grace period Inode grace period

/dev/hdb1 10days 10days

另外以上两个操作可以使用

以上设置也可以使用 setquota 命令设置:

setquota -u someone 0 0 3 5 /dev/loop0

setquota -t 864000  864000  /dev/loop0

ps. 864000 为 10 天的秒数. 一小时=3600秒, 一天=86400秒

 #. 磁盘配额完毕后,必须以 quotaon  -av 的命令启用配额管理。

7. 测试:su username,进行测试:dd if=/dev/zero of=file1 bs=1k count=50。

8.管理磁盘配额

如果配额被实现,它们就需要被维护 — 主要维护方式是观察。查看配额是否被超出并确保配额的正确性。 当然,如果用户屡次超出他们的配额或者持续地达到他们的软限,系统管理员就可以根据用户类型和磁盘空间对他们工作的影响来做出几种决策。管理员可以帮助用户来检索对磁盘空间的使用,也可以按需要增加用户的配额。

1. 报告磁盘配额

创建磁盘用量报告需要运行 repquota 工具。例如,repquota /home 命令会生成以下输出:

*** Report for user quotas on device /dev/hda3

Block grace time: 7days; Inode grace time: 7days

 Block limits                File limits

User            used    soft    hard  grace    used  soft  hard  grace

-------------------------------------------

naima      --     540       0       0            125     0     0

testuser  --  440400  500000  550000          37418     0     0

要查看所有启用了配额的文件系统的磁盘用量,使用以下命令:repquota –a

这份报告虽然看起来很简单,有几点仍需要做一下说明。显示在每个用户后面的 -- 是一种判断用户是否超出其块限度或内节点限度的快速方法。如果任何一个软限被超出,相应的 - 行就会被 - 代替;第一个 - 代表块限度,第二个代表内节点限度。 grace 列通常是空白。如果某个软限被超出,这一列就会包含过渡期中的剩余时间。如果过渡期已超过了,其中就会显示 none。

2.磁盘配额的启用和禁用

你可以不必把配额设置为 0 来禁用它们。要关闭用户和组群配额,使用以下命令:

 quotaoff –vaug

如果 -u 或 -g 选项没有被指定,只有用户配额被禁用。如果只指定了 -g 选项,只有组群配额会被禁用。

要重新启用配额,使用带有同样选项的 quotaon 命令。

例如,要为所有文件系统启用用户和组群配额:

quotaon –vaug

要为指定文件系统(如 /home)启用配额:

quotaon -vug /home

如果 -u 或 -g 选项没有指定,那么仅用户配额会被启用。如果只指定了 -g 选项,仅组群配额会被启用。

3. 为组群分配配额

配额还可以根据组群来分配。例如,要为 devel 组群设置组群配额,使用以下命令(在设置组群配额前,该组群必须存在):

edquota -g devel

以上命令在文本编辑器中显示现存的组群配额:

修改限度,保存文件,然后配置配额。

要校验组群配额是否被设置,使用以下命令:

quota -g devel

总结:

磁盘配额除了监视系统上使用的磁盘空间,你还可以通过实现磁盘配额来限制磁盘空间,因此当用户使用了过多的磁盘空间或分区将要充满时,系统管理员就会接到警告。磁盘配额可以为个体用户配置也可以为用户组配置。这种灵活性既能够给每个用户分配一个较小的配额来处理“个人”文件(如电子邮件和报告),又允许了他们正从事的项目能够拥有较大的配额(假定项目有自己的组群)。

除此以外,配额不仅能够被设置成对所用磁盘块数量的控制,还能够被设置成对内节点数量的控制。由于内节点包含文件相关的信息,对内节点的控制能够控制可被创建的文件数量。

另外我们还可以通过设置磁盘配额防范系统攻击:在大多数情况下黑客入侵远程系统必须把木马程序或后门程序上传到远程系统当中。如何才能切断黑客的这条后路呢?Linux文件系统中的磁盘配额功能就能帮助用户轻松实现对磁盘使用空间的管理。可以根据该用户在系统中的权限和使用情况,合理地为该用户指定使用空间,这样配置既不影响系统常规的操作,同时也加强了系统的安全性。

通常,如果服务器可以没有限制地执行写操作,那么都能成为塞满硬盘造成DOS攻击的途径,比如:向匿名FTP塞垃圾文件。这样也可以塞满硬盘空间。通过磁盘配额可以有效限制这类攻击。

Linux的磁盘配额详解(Quota)的更多相关文章

  1. linux下磁盘分区详解 图文(fdisk;mkfs)

    linux分区不同于windows,linux下硬盘设备名为(IDE硬盘为hdx(x为从a-d)因为IDE硬盘最多四个,SCSI,SATA,USB硬盘为sdx(x为a-z)),硬盘主分区最多为4个,不 ...

  2. linux下磁盘分区详解

    Centos下磁盘管理     1.磁盘分区格式说明 linux分区不同于windows,linux下硬盘设备名为(IDE硬盘为hdx(x为从a—d)因为IDE硬盘最多四个,SCSI,SATA,USB ...

  3. LINUX系统VMSTAT命令详解

    linux系统vmstat命令详解 [转自 https://www.cnblogs.com/wensiyang0916/p/6514820.html] vmstat 1    1表示每秒采集一次vms ...

  4. 每周一个linux命令之---uptime详解

    每周一个linux命令之---uptime详解 linux命令 uptime详解 引言:从今天开始,每周更新一个对程序员有用的linux命令,我真的没敢写每天一个,我怕我坚持不下去,每周一个还是可以的 ...

  5. [转]Linux内核源码详解--iostat

    Linux内核源码详解——命令篇之iostat 转自:http://www.cnblogs.com/york-hust/p/4846497.html 本文主要分析了Linux的iostat命令的源码, ...

  6. 【转】linux中inittab文件详解

    原文网址:http://www.2cto.com/os/201108/98426.html linux中inittab文件详解 init的进程号是1(ps -aux | less),从这一点就能看出, ...

  7. Linux 系统性能监控命令详解

    Linux 系统性能监控命令详解 CPU MEMORY IO NETWORK LINUX进程内存占用查看方法 系统负载过重时往往会引起其它子系统的问题,比如:->大量的读入内存的IO请求(pag ...

  8. Linux系统配置VSFTP软件详解

    Linux系统配置VSFTP软件详解 出处 http://www.sudu.cn/service/detail.php?id=11656 vsftpd.conf 是vsftpd的配置文件,用来控制vs ...

  9. (转)linux mount (挂载命令)详解

    linux mount (挂载命令)详解 原文:http://tutu.spaces.eepw.com.cn/articles/article/item/70737 挂接命令(mount) 首先,介绍 ...

随机推荐

  1. 【NOIP2012模拟10.25】旅行

    题目 给定一个n行m列的字符矩阵,'.'代表空地,'X'代表障碍.移动的规则是:每秒钟以上下左右四个方向之一移动一格,不能进入障碍. 计算:在空地中随机选择起点和终点(可以重合,此时最短耗时为0),从 ...

  2. git 清除缓存

    清除git缓存 git config --local --unset credential.helper git config --global --unset credential.helper g ...

  3. Git的使用及安装

    1安装. 步骤一 如果是32位就安装32位,64位就安装64,任选一款. 步骤二 步骤三 步骤四 步骤五 步骤六 步骤七 步骤八 步骤九 步骤十 步骤十一 上面的安装完成以后,下面的程序包按要求安装就 ...

  4. linux操作目录命令之mkdir与rmdir

    一.mkdir  创建目录(一个或多个目录) mkdir -m 777 -p path 1)-m  对新建目录设置权限 2)-p  可以是一个路径名称.此时若路径的某一级目录尚不存在,使有该选项后系统 ...

  5. 关于java实现断点续传的上传下载功能问题

    在web项目中上传文件夹现在已经成为了一个主流的需求.在OA,或者企业ERP系统中都有类似的需求.上传文件夹并且保留层级结构能够对用户行成很好的引导,用户使用起来也更方便.能够提供更高级的应用支撑. ...

  6. Maven构建生命周期

    以下引用官方的生命周期解释https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html: 一.构建生命 ...

  7. yii2.0 curd操作数据写法

    一.执行原生sql查询,创建yii\db\Command         insert(),update(),delete()直接构建,相应的sql语句 查: 1.查询一条 \Yii::$app-&g ...

  8. AVLTree的实现以及左右旋转维持自平衡

    AVL(Adelson-Velskii and Landis)树是带有平衡条件的二叉查找树.这个平衡条件必须要容易保持,而且它保证树的深度须是o(logN).最简单的想法是要求左右子树具有相同的高度, ...

  9. angular 的跨域处理

    angular 的跨域处理,由于不并不支持跨域处理,所以我们对他也是无可奈何,angular 的跨域处理,需要我们在服务器上进行处理,把请求的数据改成 * ,也就是,谁都可以请求数据: angular ...

  10. js fuction函数内return一个内部函数详解

    今天在网上,看到一篇关于js函数难点的文章,js函数的一些难点.在那上面提了一下,关于js函数返回另一个函数的问题,并附上了一道面试题: var add = function(x){ var sum  ...