linux磁盘配额管理

1.确认已安装quota包

[root@91ri.org]# rpm -qa |grep quota

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

以根用户身份使用vi编辑器来给需要配额的文件系统添加 usrquota 和(或) grpquota 选项:

LABEL=/ / ext3 defaults 1 1

LABEL=/boot /boot ext3 defaults 1 2

LABEL=/home /home ext3 defaults,usrquota 1 2

none /dev/shm tmpfs defaults 0 0

/dev/hda2 swap swap defaults 0 0

在上面的例子中,/home 文件系统上启用了用户配额。

3. 重新挂载文件系统

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

          [root@91ri.org]# mount -o remount /home/

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

运行 quotacheck 命令,quotacheck 命令检查启用了配额的文件系统,并为每个文件系统建立一个当前磁盘用来的表。该表会被用来更新操作系统的磁盘用量文件。此外,文件系统的磁盘配额文件也被更新。要在文件系统上创建配额文件( aquota.user 和 aquota.group ),使用 quotacheck 命令的 -c 选项。例如,如果用户和组群配额都为 /home 分区启用了,在 /home 目录下创建这些文件:

quotacheck -cmug /home

-c 选项指定每个启用了配额的文件系统都应该创建配额文件, -u 选项指定检查用户配额, -g 选项指定检查组群配额。

如果 -u 或 -g 选项被指定,只有用户配额文件被创建。如果只指定了 -g 选项,只有组群配额文件会被创建。

5.使用 edquota 命令分配磁盘配额。

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

edquota -u username

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

中Disk quotas for user user1 (uid 501):

Filesystem blocks soft hard inodes soft hard

/dev/sda5 0 0 0 0 0 0

/

~

文件内有七个栏目:

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 的命令启用配额管理。

quotacheck -mug /home

管理磁盘配额

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

1. 报告磁盘配额

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

[root@91ri.org]# repquota /home/

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

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

Block limits File limits

User used soft hard grace used soft hard grace

———————————————————————-

root — 35836 0 0 4 0 0

stu5 — 96 0 0 12 0 0

user1 — 48 64 128 12 0 0

user2 — 48 0 0 12 0 0

user3 — 48 0 0 12 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

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

Disk quotas for group devel (gid 505):

Filesystem blocks soft hard inodes soft hard

/dev/hda3 440400 0 0 37418 0 0

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

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

quota -g devel

本文转自网络由网络安全攻防研究室(www.91ri.org)信息安全小组收集整理。