Linux下的磁盘限额配置

Author: 尹植平 Date: 2001年 12期

    在多用户环境中,每个用户都可能有大量的文件存放在文件系统中。如果对用户文件容量不加限制,磁盘空间就有可能被过多占用,造成系统无法正常工作,这也是网络黑客攻击系统惯用的手段之一。因此,在许多情况下需要限制用户的磁盘空间容量。
      Linux可以规定用户或组的磁盘的限额。一旦超出规定的限额,Linux就不允许用户或组继续占用新的磁盘空间。采取以下步骤,即可完成磁盘的配额限制:
      1.缺省安装的Linux不支持磁盘限额,需要对/etc/fstab进行编辑。
      以root登录,用vi编辑程序打开/etc/fstab,编辑那些包含关于linux分区数据项的行,如下:
      /dev/hda1 / ext2  default 1 1
      在单词default后加上,grpquota,usrquota 成为
      /dev/hda1 / ext2  default,grpquota,usrquota 1 1
      存盘。
      2.建立文件quota.user和quota.group
      # touch  /quota.user
      # touch  /quota.group
      3.完成以上两步,重新启动计算机
      再次以root登录,执行/usr/sbin/edquota命令,如下所示:
      # edquota -u test
      (test必须是已存在的用户名)
      它会读入/quota.user文件(这个文件本身是二进制的),并启动vi编辑器。
      屏幕上显示:
      Quota for user test:??
      /dev/hda1: blocks in use:58,limits(soft = 0, hard = 0)??
      inodes in use:41, limits (soft = 0,hard = 0)??
      如果你要把硬盘空间限制设置为5MB~8MB,把文件个数设置为300~1000个, 可以改为:
      Quota for user cloobie:??
      /dev/hda1: blocks in use:58,limits(soft = 5000,hard = 8000)??
      inodes in use:41,limits(soft = 300,hard = 1000)
      存盘。
      4.你还可以设置一个预警期,如下所示:
      # edquota -t
      如下你可以把预警期设置为1天,也可以使用分钟或秒。
      Time units may be:days,hours, minutes,or seconds
      Grace period before enforcing soft limits for users:??
      /dev/hda1: block grace period:1 days,file grace period: 1 days
      到此配置基本完成,你可以使用quota来查看新的配额:
      # quota test
      Disk quotas for user cloobie(uid 502):?牔?
      Filesystem blocks quota limit grace files quota limit grace
      /dev/hda1 58  5000 8000  41  300  1000