在Linux中用Quota为用户分配磁盘限额

admin 发表于 [Linux] 分类,标签: CentOS Linux 服务器环境 磁盘限额
0

 

quota磁盘配额比较常见的作用:

1.避免恶意ftp用户用垃圾数据塞满宝贵的硬盘.

2.虚拟空间不同用户的容量限制

3.邮局用户的容量限制

4.多人多任务使用同一个硬盘,妥善分配系统资源

 

 

假设我们的系统用户ftpd的主目录是/home/ftpd,它是建立在/home分区中,那么如果我们要对ftpd用户进行磁盘限额,那我们需要修改/etc/fstab中根分区的记录,将/home分区的第4个字段改成defaults,usrquota,如下:

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

reboot  //重新启动系统使设置生效

也可以用

mount -o remount /dev/sda6  // /dev/sda6的挂接点就是/home,这样可以不用启动系统。

这里我还要说明一下,如果我们对一个组进行磁配额,那我们需要增加参数grpquota,例如

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

也可以

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

quotacheck -avu

说明:a-自动开启挂载文件系统的配额,v-显示信息,u-启用用户配额or g-启用组配额

edquota ftpd //为用户ftpd设置磁盘配额
edquota -g grp  //为组grp设置磁盘配额

系统会自动打开配额文件,如下:

Disk quotas for user ftpd (uid 502):

  Filesystem         blocks       soft       hard     inodes     soft     hard

  /dev/sda6           424          0          0         13        0        0

第一列是启用了配额的文件系统的名称。第二列显示了用户当前使用的块数,单位为KB。随后的两列用来设置用户在该文件系统上的软硬块限度。inodes 列显示了用户当前使用的i节点数量。最后两列用来设置用户在该文件系统上的软硬i节点限度.硬限是用户或组群可以使用的磁盘空间的绝对最大值。达到了该限度后,磁盘空间就不能再被用户或组群使用了。软限定义可被使用的最大磁盘空间量。和硬限不同的是,软限可以在一段时期内被超过。这段时期被称为过渡期(grace period),默认七天的超越。过渡期可以用秒钟、分钟、小时、天数、周数、或月数表示。如果以上值中的任何一个被设置为 0,那个限度就不会被设置。我设置了硬块限度为1KB,是为了测试方便。

quotaon  -avu  //打开磁盘配额监控进程,u是用户g是组,这里我没设置g参数

要校验用户的配额是否被设置,我们可以使用以下命令:

quota ftpd

Disk quotas for user ftpd (uid 502):

  Filesystem  blocks   quota   limit    grace   files   quota   limit   grace

/dev/sda6     424*    0      1            13      0      0        

edquota –t(-g)来设置过渡期(grace period) //当然只针对软限制而言

和另一个 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/sda6                     7days                  7days

按你的需要修改后存盘退出

用以下命令显示磁盘配额使用状态

repquota  -a  或 repquota  /dev/sda6 (用户配额)
repquota -g -a 或 repquota -a /dev/sda6 (组的配额)

如果一切按照你的意思实施了,那么我们就进行测试了!

 

我们传了一个>1k的文件,没有成功,这样我们就成功的为用户ftpd增添了磁盘配额,要是哪一天你不想加磁盘配额了,怎么办?参看如下命令:

 

取消某个文件系统的配额限制

quotaoff  -vug /dev/sda6  //删除home分区的磁盘限额

 

#删除/etc/fstab中设置配额的部分

修改软配额的最大超越时间

注意:

/,/boot//proc//mnt/cdrom等不要使用配额,没用。而且磁盘配额不适合FAT和FAT32系统。

以后当新设置了某个用户的配额,可以使用如下命令,马上生效。

quotacheck -auvgm       --是不尝试重新挂载文件系统

 

如果要成批的复制相同的磁盘配额给不通用户:
edquota -p user user1 user2 user3
edquota -g -p group group1 group2 group3
取消磁盘限额:
quotaoff /

 

发表我的评论