找回密码
 注册
搜索
热搜: 回贴
微赢网络技术论坛 门户 服务器 Linux/BSD 查看内容

linux磁盘配额设定

2009-12-20 13:41| 发布者: admin| 查看: 58| 评论: 0|原作者: 云天青


一、 磁盘配额的功能
所谓磁盘配额就是管理员可以对本域中的每个用户所能使用的磁盘空间进行配额限制,即每个用户只能使用最大配额范围内的磁盘空间。磁盘配额监视个人用户卷的使用情况,因此,每个用户对磁盘空间的利用都不会影响同一卷上其它用户的磁盘配额。磁盘配额具有如下特性:
磁盘配额可以对每个用户的磁盘使用情况进行跟踪和控制。这种跟踪是利用文件或文件夹的所有权来实现的。当一个用户在Linux ext 2/3分区上拷贝或
存储
一个新的文件时,他就拥有对这个文件的所有权,这时磁盘配额程序就将此文件的大小计入这个用户的磁盘配额空间。
  
当设置了磁盘配额后,分区的报告中所说的剩余空间,其实指的是当前这个用户的磁盘配额范围内的剩余空间。 磁盘配额程序对每个分区的磁盘使用情况是独立跟踪和控制的,而不论它们是否位于同一个物理磁盘。

操作系统
可以对磁盘配额进行监测,它可以扫描磁盘分区,监测每个用户对磁盘空间的使用情况,并用不同的颜色标识出磁盘使用空间超过报警值和配额限制的用户,这样就方便了对于磁盘配额的管理。
登录到相同计算机的多个用户互不干涉其它用户的工作能力;一个或多个用户不独占公用服务器上的磁盘空间;在个人计算机的共享文件夹中,用户不使用过多的磁盘空间。
综上所述,可以看出磁盘配额提供了一种基于用户和分区的文件存储管理,使得管理员可以方便的利用这个工具合理的分配存储资源,避免由于磁盘空间使用的失控可能造成的系统崩溃,从而提高了系统的
安全
性。
二、实现磁盘配额的步骤图解

要实现磁盘配额,请使用以下步骤:
1. 检查Linux 内核是否打开磁盘配额支持。
2. 修改/etc/fstab,对所选文件系统激活配额选项。
3. 更新装载文件系统,使改变生效。
4. 在该文件系统引导时建立aquota.user文件。
5. 扫描相应文件系统,用quotacheck命令生成基本配额文件。
6. 用edquota命令,对特定用户采用配额限制。
7. 最后,用命令激活配额。
操作步骤如图1 。

screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://blog.chinaunix.net/photo/55764_080915112208.jpg');}" onmousewheel="return imgzoom(this);" alt="" />



图1实现磁盘配额的步骤
三、实现Linux的磁盘配额的详解
1. 检查内核情况
检查当前内核是否支持quota,当前内核配置文件在/boot下
# grep CONFIG_QUOTA /boot/config-2.4.20
CONFIG_QUOTA=y
CONFIG_QUOTACTL=y
如果有上列输出,则表示当前内核已经支持quota。如果当前内核不支持quota,需要重新编译内核将quota support编译进核心:
File systems --->
Quota support 如图2 。

screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://blog.chinaunix.net/photo/55764_080915112226.jpg');}" onmousewheel="return imgzoom(this);" alt="" />

图2 配置当前内核支持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 命令来重新挂载这个文件系统。如果某文件系统正在被使用,要重新挂载该文件系统的最简捷方法是重新引导系统或者使用命令:“# mount -o remount /home”。
4. 在该文件系统建立aquota.user文件
# touch /home/aquota.user
# chmod 600 /aquota.user
5. 扫描相应文件系统,用quotacheck命令生成基本配额文件
运行 quotacheck 命令,quotacheck 命令检查启用了配额的文件系统,并为每个文件系统建立一个当前磁盘用来的表。该表会被用来更新

图3
文件内有七个栏目:
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秒
7. 磁盘配额完毕后,必须以 quotaon -av 的命令启用配额管理。
四、管理磁盘配额

如果配额被实现,它们就需要被维护 — 主要维护方式是观察。查看配额是否被超出并确保配额的正确性。 当然,如果用户屡次超出他们的配额或者持续地达到他们的软限,系统管理员就可以根据用户类型和磁盘空间对他们工作的影响来做出几种决策。管理员可以帮助用户来检索对磁盘空间的使用,也可以按需要增加用户的配额。
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
-------------------------------------------
root -- 36 0 0 4 0 0
tfox -- 540 0 0 125 0 0
testuser -- 440400 500000
5500
00 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
以上命令在文本编辑器中显示现存的组群配额:
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
总结:
磁盘配额除了监视系统上使用的磁盘空间,你还可以通过实现磁盘配额来限制磁盘空间,因此当用户使用了过多的磁盘空间或分区将要充满时,系统管理员就会接到警告。磁盘配额可以为个体用户配置也可以为用户组配置。这种灵活性既能够给每个用户分配一个较小的配额来处理“个人”文件(如电子邮件和报告),又允许了他们正从事的项目能够拥有较大的配额(假定项目有自己的组群)。
除此以外,配额不仅能够被设置成对所用磁盘块数量的控制,还能够被设置成对内节点数量的控制。由于内节点包含文件相关的信息,对内节点的控制能够控制可被创建的文件数量。
另外我们还可以通过设置磁盘配额防范系统攻击:在大多数情况下黑客入侵远程系统必须把木马程序或后门程序上传到远程系统当中。如何才能切断黑客的这条后路呢?Linux文件系统中的磁盘配额功能就能帮助用户轻松实现对磁盘使用空间的管理。可以根据该用户在系统中的权限和使用情况,合理地为该用户指定使用空间,这样配置既不影响系统常规的操作,同时也加强了系统的
安全
性。

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







最新评论

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-30 11:34 , Processed in 0.100602 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

返回顶部