开发者社区


C++/C | Java | .Net/Windows | Linux/Unix | 开源 | 其他
首页 - 编程
编程
全文搜索:   

用磁盘限额管理Linux用户账号
作者: Chad Perrin
2006-05-25 16:29:16



分区配置

第三步,你必须配置分区设置来激活限额,并详细说明如何在各个分区上执行限额。在建立磁盘限额时,你可以将它们应用到用户或用户组中。每个配备妥当的分区都有其自己的限额配置,你可以在fstab文件中对其进行指定。例如,你可以在一个分区上建立限额来限制用户主目录的大小,并在另一个分区上建立一个某一特定的项目组的所有成员能够访问的目录,以限制整组成员所使用的目录的大小。

为激活某个分区的限额,你必须对/etc/fstab文件进行编辑。在那个文件的每个条目中,都有一个包含配备选项——如ro(代表“只读”)、rw(代表“读/写”)或默认——的竖栏。这些选项形成一个以逗号间隔的,没有空格的列表。如果你希望激活一个特定分区上的用户限额,增加usrquota选项;如果你希望激活组限额,增加grpquota选项。

为准备分区,你必须在使用限额的每个分区上建立限额数据库。你需要建立空白的数据文件,将每个使用限额的分区根目录中的用户与组信息存储在里面。

例如,如果你要装备/dev/hda2 at /home,在那个分区装备时你得转到/home并建立两个空白文件quota.userquota.group。你应以根用户登录并这样做:用touch quota.usertouch quota.group命令建立两个空白文件。文件建立后,你就可以用chmod命令来改变这些数据库文件的文件许可,以便只有根用户能对其进行读写。总的来说,你输入的命令以及输出的结果如下所示:

$ su

Password:

# cd /home

# touch quota.user

# touch quota.group

# chmod 666 quota.user

# chmod 666 quota.group

限额

最后,你需要准备为用户和用户组建立限额设置。要建立限额设置,须使用edquota命令。应用这个命令,你可以配置软限制限额、硬限制限额与超出软限制的宽限时间。

  • 硬限制是每个用户或用户组不得超出的磁盘使用限额。尽管硬盘驱动器在存储空间以外运行,操作系统也会阻止用户或用户组超过此硬限制限额。通常情况下,系统管理员会将硬限制设得稍大一些,这样,用户或用户组在删除引起配额限制目录超出其软限额的文件前,就有缓冲空间来保存文件。可能需要一个这样的原因,如在删除文件拷贝前对文件进行复制、修改与测试。
  • 软限制是每个用户或用户组在日常运作中应该被限制的磁盘使用限额。如上所述,在硬限制的限定下,用户可暂时超过软限制。但一段时间后,如果用户目录没有遵守软限制限额标准,则系统会禁止此用户账号,执行软限制。要重新激活账号,则要由系统管理员来执行。
  • 宽限时间设置决定某人使存储应用遵守软限制限额所用的时间。例如,软限制第一次超出后,七天的设置让用户有七天的时间来使限额配置目录中的磁盘使用额重新降低到软限制以下,不然账号即被禁止。在多数系统中,七天为默认的宽限时间。当然,如果希望的话,系统管理员也可以把宽限时间设得长一些或短一些。

输入edquota命令即可打开外壳$EDITOR变量指定的默认文本编辑器。如果你不喜欢所调用的编辑器——例如,你是一个vi用户,edquota命令调用了emacs——你就可以用export EDITOR=vi命令来修改$EDITOR变量。

viemacs相比,nanopico总是在屏幕底部显示简单、公共的命令帮助信息,因此它们更适合初学者使用。如果你不小心“闯入”viemacs之中,可以输入Ctrl X ,接着输入Ctrl C>退出emacs

在不保存意外改变的情况下退出vi,只需点击ESC键再确定即可回到命令模式(如果机器在嘟嘟作响,你可能已回到命令模式),然后输入:q!再单击回车键。在编辑限额设置时才试图学习如何使用编辑器可不是个好办法,所以你最好现在就开始学习使用nanopico

要编辑宽限时间设置,你可以使用edquota-t选项,输入:

edquota –t

这一命令允许你为使用磁盘限额的各个分区设定不同的宽限时间。

可编辑用户或用户组软硬限制,可应用-u-g选项,再加上你希望编辑限额的用户账号或用户组账号即可。例如,edquota -u foo允许你编辑用户foo的限额设置,而edquota -g bar允许你编辑用户组bar的限额设置。

-p选项允许你将一个用户的设置复制给另一个用户。例如,如果用户baz要使用与用户foo一样的设置,可以输入:

edquota -p foo -u baz

在一台每个人都使用同样的限额设置的机器上建立新的用户账号限额,这个方法可以节省许多时间。我们可以用-p命令选项来生成一个简单的一行bash脚本,同时处理大量的账号。不过,这要等到你精通bash脚本时才能使用。

在编辑限额设置时,你会发现存在有“块”(block)与inodes设置。在典型的Linux系统中,块为千字节单元。它决定你正在编辑限额的用户或用户组账号可以使用多少磁盘存储空间。inode设置可用来限制一个指定的用户允许使用的文件数目(一般来说,每个文件都需要几个inode),与block设置一样,它也有硬限制与软限制,并使用同样的宽限时间设置。显示为零的限制设置则表明那个用户或用户组账号没有执行限额。通常block要进行硬限制与软限制,而inode则没有这些限制。

当你初次开始为用户与用户组编辑限额设置时,每个账号的配置将显示少量的已使用的block与inode(如果在一个已运行一段时间的系统上执行限额,时会出现大量的block与inode)。这些数字不能进行编辑:在改变限额配置时,只能编辑硬限制与软限制数目。完成编辑与设置后,用在调用edquota时给定的默认文件名对它们进行保存——你根本不必选择文件名,只需从你所使用的编辑器中进行保存与编辑。

限额管理

一旦设定了限制,你可以使用其它许多工具来对限额进行管理。例如,可以用quotacheck来检查限额数据库的完整性,用repquota来报告限额使用状况,用户还可以调用quota本身来查看他们的限额使用情况;根用户还可用它来获得用户账号信息。欲了解更多与这些应用有关的信息,请查看相关说明文件。

最后,一些Linux产品还提供一个附加的工具集,称为quotatool。根据你应用磁盘限额管理的时间长短,你可能值得花一些时间来研究如何使用这个工具集。

责任编辑:张琎

查看本文的国际来源

【上一页】
声明:
Builder.com.cn(原ZDNet China应用开发频道)原创文章版权所有,未经许可严禁转载,且不构成投资建议。
近期相关报道:
实用技术文档
J2me XML
C/C++ C#
Java Oracle
Mysql .Net
VB.NET CSS
SQL Server 数据库
SQL UNIX
Linux Jsp
PHP Perl
Javascript IIS
XHTML ColdFusion
ASP/ASP.NET Apache
AJAX
订阅技术邮件
订阅"技术圈"杂志!请在下面选择您感兴趣的专题,填写e-mail地址,然后按订阅按钮:
应用开发管理
VS.NET 周刊
Database 周刊
WEB Service周刊
JAVA 周刊
IT 认证
Windows服务器周刊
互联网开发
当Windows Server 2008专家得5000元现金大奖
CNET NETWORKS 中国: 爱卡汽车网 | CNET科技资讯网 | e询网 | CWEEK | 蜂鸟网 | GameSpot China | 个人电脑 | PChome | SPN | 网友世界 | ZDNet China | 中关村在线
CNET NETWORKS 美国: BNET | CNET.com | CNET Download.com | CNET News.com | CNET Reviews | CNET Shopper.com | GameSpot | MP3.com | mySimon | Release 1.0 | Search.com | TechRepublic | TV.com | Webshots | ZDNet
Copyright (c) 2006 CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
ZDNet 公司标识是 CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号