Chinaunix首页 | 论坛 | 博客
  • 博客访问: 564688
  • 博文数量: 112
  • 博客积分: 5090
  • 博客等级: 大校
  • 技术积分: 1158
  • 用 户 组: 普通用户
  • 注册时间: 2005-08-19 22:21
文章分类

全部博文(112)

文章存档

2016年(1)

2015年(1)

2012年(1)

2011年(5)

2010年(7)

2009年(6)

2008年(18)

2007年(28)

2006年(16)

2005年(29)

我的朋友

分类: LINUX

2005-10-09 15:52:51

quota来实现对用户使用磁盘空间的限制

磁盘配额

 我们在配置文件共享的时候,有一个共享资源为homes,如aa登录,在cxserver中有一个aa文件夹,aa用户对这个文件夹具读写权限,

如若我们不限制aa的话,他有可能会将硬盘塞满,任何一个管理员都不希望看到这种事情,下面我们用quota来实现对用户使用磁盘空间的限制。

1]首先明白一个概念,quota是针对分区的,所以我们在前面安装linux的时候单独分了一个/home区。

2]而所有的用户home目录都在/home下,现在开始在home目录下建立两个文件:
cd /home
touch quota.user
touch quota.group
chmod 600 quota.user //只允许root对这两个文件读写
chmod 600 quota.group

3]/etc/rc.d/rc.local文件尾部加入quota启动脚本:
if [ -x /sbin/quotacheck ]
then
echo "Checking quotas. This may take some time..."
/sbin/quotacheck -avug
echo "Done"
fi
if [ -x /sbin/quotaon ]
then
echo "Turning on quota"
/sbin/quotaon -avug
echo "OK"
fi

4]修改/etc/fstab文件中定义/home分区的那一行:
原内容: /dev/hda3 /home ext3 defaults 1 2
新内容: /dev/hda3 /home ext3 defaults,usrquota,grpquota 1 2
看得出来只是在defaults后面加了usrquota,grpquota而已。
注意啊,是usrquota而不是userquota,若是错了,后果难以预料。

5]重启,在启动过程中会出错,主要是因为quota/home目录下打不到aquota.useraquota.group两个文件,没关系,咱们进了系统以再慢慢收拾它。

6]root登录,然后我们生成aquota.useraquota.group两个文件:
convertquota -u /home
convertquota –g /home
若以上步骤不出错的话,我们用ls /home –al就会看到aquota.useraquota.group
个文件了

7]再重启,注意观察,不会再出错了。进入系统后就可以对用户home目录进行限制了。比如现在有一个test用户,我们对他进行限制:
edquota –u test #此命令将进入一个vi编辑模式,其内容如下:
Filesystem blocks soft hard inodes soft hard
/dev/hda3 0 0 0 0 0 0
注解标识: A B C D E F
在讲解各参数之前先说说限制的两种方式:soft,hard
soft:又称软限制,当用户到达这个限制以后,系统会给予警告,但仍可写入。
hard:又称硬限制,到达这个限制,就完全禁止任何写入啦。
ABC为磁盘空间的限制设置,而DEF为总文件个数的限制
A:已使用空间,无需要设置
B:用户空间使用限制,为软限制,需要设置。
C:用户空间使用限制,为硬限制,需要设置。
D:已有文件总数,无需要设置。
E:文件总数限制,为软限制,需要设置。
F:文件总数限制,为硬限制,需要设置。

我们要限制test用户使用空间100M,最多不能超过120M,文件总数为2000个,
最多不能超过2500个,设置如下:
Filesystem blocks soft hard inodes soft hard
/dev/hda3 0 102400 122880 0 2000 2500
注:空间限制是以k为单位的。

8]测试:进入自己的home目录,然后拷贝文件,若是超过120M,就不允许再写入了。

9]其它命令的使用:
复制相同调协至其它用户:
edquota –p test –u username1 username2 username3 username4……
显示某个用户当前磁盘使用情况:
quota –v username
显示所有用户当前磁盘使用情况:
repquota –a
其它的一些命令请参考相关资料。

阅读(2152) | 评论(0) | 转发(0) |
0

上一篇:DHCP服务器配置

下一篇:FTP服务器配置

给主人留下些什么吧!~~