Linux 基础学习篇 - Mandrake 9

第十四章、磁盘配额 (Quota) - for Mandrake 9

鸟哥的第一本书籍的主要内容,内容稍微与书籍不太一样了!

最近更新时间: 2003/02/10

鸟哥的第一本书大约是在 2002 年的年底左右出版的,内容几乎都是 Linux 基础学习,一点也没有谈到服务器的部份!这也是后来的雏型! 不过内容错误的地方很多,导致在 2003 年的年底推出了『基础学习篇增订版』的内容,大致上就是处理掉一些比较有严重错误的部份。 不过,因为 Linux 的版本变化非常快速,因此,写完了这些文档之后,鸟哥还是持续在网站上更新文档内容,导致原本书籍内容的数据与网站数据差异太大! 这个问题直到鸟哥在 2008 年左右才发现!糟糕了!旧版的文档数据已经遗失~觉得相当扼腕~

因此,在底下的文档内容与当初的书籍内容虽然大同小异,不过章节的编排却是有所不同!再花时间去一个一个处理,似乎也不太符合成本效益! 鸟哥仅是想要将自己以前的文档记录下来而已,同时将过时的 big5 编码改回 utf8 编码,再加上可以支持 RWD 的样式而已啦! 内容已经不多做编排~因此,如果内容文档你看不懂,那也是应该的! ^_^

建议您前往本站查找最新版本的 Linux distribution 文章来阅读,比较不会浪费时间。最新文章请前往鸟站首页查阅啰!

什么是 quota?

quota 就字面上的意思来看,呵呵!就是有多少『限额』的意思啦!如果是用在零用钱上面,就是『有多少零用钱一个月』的意思之类的。如果是在容量空间上面呢?以 Linux 来说,呵呵!就是有多少容量限制的意思。
 
在 Linux 系统中,由于是多人多任务的环境,所以会有多人共同使用一个硬盘空间的情况发生,如果其中有少数几个用户大量的占掉了硬盘空间的话,那势必压缩其他用户的使用权力!因此管理员应该适当的开放硬盘的权限给用户,以妥善的分配系统资源!避免有人抗议呀!比较常使用的几个情况是:
  • (1) 例如每个人的网页空间的容量限制!
  • (2) 每个人的邮件空间限制。
在 Linux 当中,使用来作为硬盘空间管理的就是所谓的 quota 这个咚咚啦!使用这个模块要有几个步骤,底下就分别说说吧!另外要特别注意的是,使用 quota 时有几个基本的限制需要谈一谈:
  • quota 实际在运作的时候,是针对『整个 partition』进行限制的,例如:如果你的 /dev/hda5 是挂载在 /home 底下,那么在 /home 底下的所有目录都会受到限制!
  • Linux 系统内核必须有支持 quota 这个模块才行:如果您是使用 Mandrake 的缺省内核,嘿嘿!那恭喜你了,你的系统已经缺省有开放 quota 这个模块啰!如果您是自行编译内核的,那么请特别留意您是否已经『真的』打开了 quota 这个模块?否则底下的功夫将全部都视为『白工』。至于内核编译的过程我们会在未来进行说明呦!
  • 目前新版的 Linux distributions 如: Mandrake 9.0 与 Red Hat 8.0 等使用的是 Kernel 2.4.xx 的内核版本,这个内核版本支持新的 quota 模块,使用的缺省文件( aquota.user, aquota.group )将不同于旧版本的 quota.user, quota.group !(多了一个 a 呦!)而由旧版本的 quota 可以借由 convertquota 这个程序来转换呢!
 quota 这支程序的限制内容主要分为底下几个部分:
  • soft :这是最低限制容量的意思,用户在宽限期间之内,他的容量可以超过 soft ,但必需要宽限时间之内将磁盘容量降低到 soft 的容量限制之下!
  • hard :这是『绝对不能超过』的容量!跟 soft 相比的意思为何呢?通常 hard limit 会比 soft limit 为高,例如网络磁盘空间为 30 MB ,那么 hard limit 就设置为 30MB ,但是为了让用户有一定的警戒心,所以当使用空间超过 25 MB 时,例如用户使用了 27 MB 的空间时,那么系统就会警告用户,让用户可以在『宽限时间内』将他的文件量降低至 25 MB ( 亦即是 soft limit )之内!也就是说, soft 到 hard 之间的容量其实就是宽限的容量啦!可以达到针对用户的『警示』作用!
  • 宽限时间:那么宽限时间就可以很清楚的知道含意是什么了!也就是当您的用户使用的空间超过了 soft limit ,却还没有到达 hard limit 时,那么在这个『宽限时间』之内,就必需要请用户将使用的磁盘容量降低到 soft limit 之下!而当用户将磁盘容量使用情况超过 soft limit 时,『宽限时间』就会自动被启动,而在用户将容量降低到 soft limit 之下,那么宽限时间就会自动的取消啰!

基本的 quota 指令

在开始进行 quota 的实作之前,我们得来了解一下 quota 要使用的指令啰!基本上分为两种,一种是查找功能(quota, quotacheck, quotastats, warnquota, repquota),另一种则是编辑 quota 的内容( edquota, setquota )。底下我们来谈一谈这些基本的指令吧!

  • quota

  • 语法
    [root @test /root ]# quota [-guvs] [user,group]
    参数说明:
    -g  :显示 group 群组
    -u  :显示 user
    -v  :显示 quota 的值
    -s  :选择 inod 或 硬盘空间来显示
    范例:
    [root @test /root ]# quota -guvs    <==显示目前运行者(就是 root )的 quota 值
    [root @test /root ]# quota -uvs test <==显示 test 这个用户的 quota 值
    说明
    这个指令仅是使用来『显示(display)』目前某个群组或者某个用户的 quota 限值!您可以使用来观察一下呦!

  • quotacheck

  • 语法
    [root @test /root ]# quotacheck [-auvg] /yourpath
    参数说明:
    -a  :扫瞄所有在 /etc/mtab 里头已经 mount 的具有 quota 支持的磁盘
    -u  :扫瞄用户的文件与目录
    -v  :显示扫瞄过程
    -g  :扫瞄群组使用的文件与目录
    -m :强制进行 quotacheck 
    范例:
    范例一、要针对 /home 这个 partition 进行 quota 的规划:
    [root@test root ]# quotacheck -uvg /home       <==开始扫瞄 /home 这一个独立磁区的目录
    quotacheck: Scanning /dev/hda3 [/home] done      <==显示 /home 磁区为 /dev/hda3 !
    quotacheck: Checked 35 directories and 342 files <==扫瞄完毕,有 35 目录与 342 文件。
    [root@test root ]# ls -l /home          <==查看一下 /home 这个目录底下,两个文件产生了!
    -rw-------    1 root     root         7168 May  6 18:37 aquota.group
    -rw-------    1 root     root         7168 May  6 18:37 aquota.user
     
    关于 quotacheck 发生错误的解决方法:
    # 有些时候,在新版的 Linux distribution 当中,进行 quotacheck 时,可能会出现
    # quotacheck: Cannot get quotafile name for /dev/hda3
    # quotacheck: Cannot get quotafile name for /dev/hda3
    # 这可能是新版的 quota 在设计时的小问题,解决的方法有两个:
    [root@test root]# quotacheck -uvgm 
    # 加上 -m 的参数来强制进行,或者是:
    [root@test root]# touch /home/aquota.user; touch /home/aquota.group
    [root@test root]# quotacheck -uvg
    # 既然 quotacheck 找不到 quotafile ,那么我就手动将 quotafile 创建起来即可!
    # 然后再重新进行 quotacheck 一次即可!
    # 注意喔!因为我的 /dev/hda3 对应到 /home ,所以当然就是在 /home 底下创建起 qoutafile 了!
    说明
    这这个指令主要的目的在扫瞄某一个磁盘的 quota 空间,他会针对该磁盘进行扫瞄,并且,由于该磁盘若持续运作时,可能扫瞄的过程中,文件可能会增减,造成 quota 扫瞄的错误发生,因此,当使用 quotacheck 时,该磁盘将『自动被设置成为唯独磁区(read-only);至于扫瞄完毕之后,扫瞄所得的磁盘空间结果会写入该磁区最顶端(例如:在我的例子中,扫瞄 /home 这个 /dev/hda3 的磁区,如果是初次扫瞄,那么扫瞄完毕之后会产生 aquota.user 与 aquota.group ,会放置在 /home/aquota.xxx 底下!而如果是创建 quota 后的扫瞄,那么就会更新这两个文件!)另外, Linux 也特别强调 quota 在使用的时候,需要特别注意在 reboot 时,得先将 quota 关闭才好!
    此外,由于新版的 Linux distribution 在 quota 的设计上似乎有点小问题,有时候无法完整的进行 quotacheck ,发生如同上表的情况,解决的方法就是主动手动的创建 quotafile 即可喔!

  • edquota

  • 语法
    [root @test /root ]# edquota [-u user] [-g group] [-t]
    [root @test /root ]# edquota -p user_demo -u user
    参数说明:
    -u  :编辑 user 的 quota
    -g  :编辑 group 的 quota
    -t  :编辑宽限时间(就是超过 quota 值后,还能使用硬盘的宽限期限)
    -p  :copy 范本(以创建好的用户或群组)到另一个用户(或群组)
    范例:
    [root @test /root ]# edquota -u test        <==设置 test 这个用户的 quota 数值,会直接进入 vi 画面
    Disk quotas for user test (uid 501):
      Filesystem                   blocks       soft       hard     inodes     soft     hard
      /dev/hda3                         8          0          0          5        0        0
    修改一下成为:
    Disk quotas for user test (uid 501):
      Filesystem                   blocks       soft       hard     inodes     soft     hard
      /dev/hda3                         8       50005000          5     50005000

    [root @test /root ]# edquota -p test -u test2  <==将 test 这个人的 quota 数据拷贝给 test2 这个人!

    [root @test /root ]# edquota -t         <==设置宽限时间,也就是超过 quota 值之后的修正时间啦!
    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/hda3                  0minutes               0minutes
    上面的 0minutes 可以改成 60minutes 即可!也就是 60 分钟之内必须要赶快整理硬盘的意思!

    说明
    这个指令就是在编辑每一个『个人』或者是『群组』的 quota 数值!通常我们以 edquota -u username 或者是 edquota -g groupname 来编辑个人与群组的 quota 设置值。不过,或许您会觉得一个一个分配似乎很慢的样子!那么您也可以直接 copy 一个人的设置值给其他人,就如同上面第二个例子,利用已经创建好的 test 来创建 test2 这个人的 quota 限额!这个指令可是很重要的呦!另外,上面有几个重要的信息,我们来谈一谈吧:
    1. filesystem:这个是那个 partition 的意思!以上面来说,就是 /dev/hda3 啰!
    2. blocks:这个是目前用户 test ( uid 501 )在 /dev/hda3 这个 filesystem (参考上面一个信息),所耗掉的磁盘容量,也就是目前的使用掉的空间啦!单位是 Kbytes 喔!这个信息是 quota 程序自己计算出来的,所以请不要修改他!
    3. soft 与 hard :这个是目前的 test 在这个 filesystem 之内的 quota 限制值!至于 soft 与 hard 的意思就如同 14-1 节最后面提的那个意思啦!当 soft 与 hard 数值为 0 的时候,表示『没有限制』的意思!而数值的单位仍是 Kbytes 喔!
    4. inodes :是目前使用掉 inode 的状态,也是 quota 自己计算出来而得到的,所以不要去变更他。一般而言, inode 不容易控制,所以您可以不必去限制 inode 呢!

  • quotaon

  • 语法
    [root @test /root ]# quotaon [-a] [-uvg directory]
    参数说明:
    -a  :全部的 quota 设置都启动(会自动去寻找 /etc/mtab 的设置)
    -u  :用户的 quota 启动
    -g  :群组的 quota 设置启动
    -v  :显示消息
    范例:
    [root @test /root ]# quotaon -a         <==全部的 quota 限制都启动
    [root @test /root ]# quotaon -uv /home  <==只有启动 /home 底下的用户 quota 限额,group 不启动!
    说明
    这个指令是在启动 quota 的!不过,由于这个指令是启动 aquota.group 与 aquota.user 的,所以您就必须要先完成 qutoacheck 的工作了!然后简单的下达 quotaon -a 即可启动!

  • quotaoff

  • 语法
    [root @test /root ]# quotaoff -a
    参数说明:
    -a  :全部的 quota 设置都关闭(会自动去寻找 /etc/mtab 的设置)
    范例:
    [root @test /root ]# quotaoff -a         <==全部的 quota 限制都关闭了!
    说明
    这个指令就是关闭了 quota 的限制啦!

    动手作 quota:

      quota 可以作用的功能有很多,包括了:
       
      • 限制某一群组所能使用的最大磁盘配额(使用 群组 限制):你可以将你的主机上的用户分门别类,有点像是目前很流行的付费与免付费会员制的情况,你比较喜好的那一群的使用配额就可以给高一些!呵呵! ^_^...
       
      • 限制某一用户的最大磁盘配额(使用 用户 限制):在限制了群组之后,您也可以再继续针对个人来进行限制,使得同一群组之下还可以有更公平的分配!
       
      • 以 Link 的方式,来使邮件可以作为限制的配额(更改 /var/spool/mail 这个路径):如果是分为付费与免付费会员的『邮件主机系统』,是否需要重新再规划一个硬盘呢?也不需要啦!直接使用 Link 的方式指向 /home (或者其他已经做好的 quota 磁盘)就可以啦!
       
      底下先列出几个主要的步骤来说明:
       
      1. 打开磁盘的 quota 功能:编辑 /etc/fstab ,使得准备要开放的 quota 磁盘可以支持 quota 啰;
      2. 预扫瞄磁盘的使用情况:使用 quotacheck 来扫瞄一下我们要使用的磁盘啰;
      3. 创建用户的 quota :使用 edquota 来编辑每个用户或群组的可使用空间啰;
      4. 启动 quota :使用 quotaon 吧!
       
      整个步骤大致上就只有这几步,我们来瞧一瞧如何使用吧!!底下我们以一个简单的范例来进行 quota 的说明啰!整个范例的说明如下:
       
      1. 我们假设 test 这部主机里头有 test 与 test2 这两个用户,且他们两个都挂在 test 这个群组下;
      2. 每个用户总共有 50MB 的磁盘空间(不考虑 inode )限制!并且 soft limit 为 45 MB;
      3. 而宽限时间设置为 1 天,也就是说,这四个人可以突破 40MB 的限制,但是在一天之内必须要将多余的文件砍掉,否则将无法使用剩下的空间(也就是说,这个帐号大概就不能使用了?);
      4. test 这个群组考虑最大限额,所以设置为 90 MB 好了!
       
      整个运行步骤可以照下面来运行看看:
      1. 创建 test2 这个用户:

      2. 由于我们之前只有 test 这个用户挂在 test 群组之中,所以必需要先设置一下 test2 这个用户!因为他的群组必需是 test 这个,而我们去查了一下 /etc/group 发现 test 的 uid 为 501 ,因此,我们可以这样来设置 test2 呢!
         
        [root @test root]# useradd –m –g 501 test2
        [root @test root]# passwd test2
        Changing password for user test2.
        New UNIX password:
        Retype new UNIX password:
        passwd: all authentication tokens updated successfully.
         
      3. 打开磁盘的 quota 功能:

      4. 由于 quota 需要在 ext 的 Linux 延伸格式文件才可以启动,所以你就必须要将准备打开 quota 的磁盘启动参数,写进入 quota 的磁盘设置才行 ( /etc/fstab )!以我的例子而言,我想要在 /home 底下进行 quota 的限制test, test2 这两个人!正巧 /home 是一个独立的磁区,这可以使用 df 来查找:此外,必需要特别留意的是,最好不要以根目录亦即是 / 进行 quota 啦!否则容易有些问题呢!另外,不要针对 root 做 quota 喔!
         
        [root @test root]# df
        Filesystem           1K-blocks      Used Available Use% Mounted on
        /dev/hda1              1904920   1088136    720020  61% /
        /dev/hdb1               976344     71504    854444   8% /backup
        /dev/hdb2               101540      4252     92048   5% /home
         
        嗯!我的 home 是独立的 partition ,并且他的设备名为 /dev/hdb2 ,好了!那么我就必须要启动 /home 这个 /dev/hdb2 的 quota 文件格式,好了!那么由于文件格式的设置是写在 /etc/fstab 里头,所以我们以 vi 来编辑他吧!只要在 /etc/fstab 里头增加了 usrquota, grpquota 就可以啦!『注:请特别留意,这两个项目请『务必』不要写错了!请再写入 /etc/fstab 之前好好的再次检查,因为写错之后,很有可能造成系统无法开机(虽然几率不高,但是有可能!?)』
         
        [root @test root]# vi /etc/fstab
        # device        MountPoint      filesystem      parameters      dump    fsck
        /dev/hda1       /               ext3            defaults        1       1
        /dev/hda2       swap            swap            defaults        0       0
        /dev/hdb1       /backup         ext3            defaults        1       1
        /dev/hdb2       /home           ext3            defaults        1       1
        none            /dev/pts        devpts          mode=0620       0       0
        none            /proc           proc            defaults        0       0

        上面的黄色字体改成底下的样子!
        /dev/hdb2       /home           ext3            defaults,usrquota,grpquota 1 1

         
        多了 usrquota,grpquota 注意,由 defaults,usrquota,grpquota 之间都没有空格!
         
        这样就算加入了 quota 的磁盘格式了!不过,由于真正的 quota 在读取的时候是读取 /etc/mtab 这个文件的,偏偏这一个文件需要重新开机之后才能够以 /etc/fstab 的新数据进行改写!所以这个时候你可以选择:
         
          (1)重新开机==>reboot;也可以选择
          (2)重新 remount filesystem 来驱动设置值!
         
        我是不太喜欢重新开机的人啦!所以我就这么做:
         
        [root@test /]# umount /dev/hdb2
        [root@test /]# mount -a
        [root@test /]# more /etc/mtab
        /dev/hda1 / ext3 rw 0 0
        none /proc proc rw 0 0
        none /proc/bus/usb usbdevfs rw 0 0
        none /dev devfs rw 0 0
        none /dev/pts devpts rw,mode=0620 0 0
        /dev/hdb1 /backup ext3 rw 0 0
        /dev/hdb2 /home ext3 rw,usrquota,grpquota 0 0

        或者以下列的方式重新 mount 所有的磁盘:
        [root @test /root ]# mount -a -o remount  <==这个指令可以重新将 /etc/fstab 的咚咚 mount 下来!

         
        嘿嘿嘿嘿!这样我们就已经成功的将 quota 的功能写入 partition 当中啰!另外,我们这里是以 ext3 这个磁盘格式来测试 quota 的呦!
         
      5. 扫瞄磁盘的用户使用状况,并产生重要的 aquota.group 与 aquota.user:

      6. 接着下来就是要来扫瞄一下我们所需要的磁盘到底有没有多余的空间可以让我们来设置 quota 呢?并且将扫瞄的结果输出到这个磁盘的最顶层去(也就是 /home 底下)这个时候就需要 quotacheck 这个指令的帮忙了!使用 quotacheck 就可以轻易的将所需要的数据给他输出了!现在就 OK 啦!并且在 /home 底下会产生 aquota.group 与 aquota.user 这两个文件!
         
        [root@test /]# quotacheck -avug
        quotacheck: Scanning /dev/hdb2 [/home] done
        quotacheck: Checked 10 directories and 22 files
        [root@test /]# ll /home
        total 44
        -rw-------    1 root     root         7168 Oct 28 14:05 aquota.group
        -rw-------    1 root     root         7168 Oct 28 14:05 aquota.user
        drwx------    2 root     root       16384 Oct 22 16:54 lost+found/
        drwxr-xr-x    3 test     test         4096 Oct 28 01:45 test/
        drwxr-xr-x    3 test2    test         4096 Oct 28 13:37 test2/
         
        使用 quotacheck 就可以轻易的将所需要的数据给他输出了!现在就 OK 啦!并且在 /home 底下会产生 aquota.group 与 aquota.user 这两个文件!注:但是很奇怪的是,在某些 Linux 版本中,我不能够以 aquota.user(group) 来启动我的 quota ,真的是很奇怪呢!所以我就另外做了一个 link 文件来欺骗 quota 啰:
         
        [root @test /root ]# cd /home 
        [root @test /root ]# ls -l aquota* 
        -rw-------    1 root     root         7168 May  6 22:16 aquota.group 
        -rw-------    1 root     root         7168 May  6 22:16 aquota.user 
        [root @test /root ]# ln -s aquota.group quota.group 
        [root @test /root ]# ln -s aquota.user quota.user
         
      7. 启动 quota 的限额!

      8. 再来就是要启动 quota 啦!启动的方式也是很简单的!就是使用 quotaon -av 即可:
         
        [root@test /]# quotaon -av
        /dev/hdb2 [/home]: group quotas turned on
        /dev/hdb2 [/home]: user quotas turned on
         
        注意:要看到上面有个 turned on 的出现,才是真的成功了!
         
      9. 编辑用户的可使用空间:

      10. 由于我们有两个用户要设置,先来设置 test 好了,使用 edquota 就对了
         
        [root @test /]# edquota –u test
        Disk quotas for user test (uid 501):
          Filesystem         blocks       soft       hard     inodes     soft     hard
          /dev/hdb2              32          0          0          8        0        0

        将上面的原本设置改为底下的模样:
        Disk quotas for user test (uid 501):
          Filesystem         blocks       soft       hard     inodes     soft     hard
          /dev/hdb2              32     40000       50000          8        0        0

         
        要特别留意的是,上面的黑体数值代表的是 KB 呦!转成 MB 是需要乘上 1024 倍,这里简单的计算一下就好了!这样就算编辑完毕了!接下来我们就需要将这个设置同时拷贝给 test2 这个家伙!
         
        [root@test /]# edquota -p test test2
         
        接下来要来设置宽限时间,还是使用 edquota !
         
        [root@test /]# edquota -t
        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/hdb2                     1days                  1days
         
        将时间改为 1 天(原本是 7days 改成 1days ),好了!查找一下是否真的有设置进去呢?使用 quota -v 来查找
         
        [root@test /]# quota –vu test test2
        Disk quotas for user test (uid 501):
             Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
              /dev/hdb2      32   40000   50000               8       0       0
        Disk quotas for user test2 (uid 502):
             Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
              /dev/hdb2      28   40000   50000               7       0       0
         
        特别注意到,由于我们的用户尚未超过 40 MB,所以 grace ( 宽限时间 )就不会出现啦!这样很够清楚了吧?!
         
      11. 编辑群组使用空间:

      12. 其实也差不多,还是使用 edquota:
         
        [root@test /]# edquota -g test 
        Disk quotas for group test (gid 501):
          Filesystem         blocks       soft       hard     inodes     soft     hard
          /dev/hdb2              60          0          0         15        0        0

        修改成底下这样:
        Disk quotas for group test (gid 501):
          Filesystem         blocks       soft       hard     inodes     soft     hard
          /dev/hdb2              60      80000      90000         15        0        0

        [root@test /]# quota -vg test
        Disk quotas for group test (gid 501):
             Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
              /dev/hdb2      60   80000   90000              15       0       0

         
      13. 设置开机时启动:

      14. 开机的时候自动启动的设置在哪里还记得吗?没错!就是在 /etc/rc.d/rc.local 底下:所以你可以使用 vi 在这个文件的最后面加上一行:
         
        [root @test /root ]# vi /etc/rc.d/rc.local 
        /sbin/quotaon -aug 
         
        如果要关闭 qutoa 就是用 quotaoff 吧!没错!这样就将 quota 设置完毕了!很简单吧!!

    使用邮件主机进行 quota 的实例:

      好了,我们前面 帐号管理 的部分曾经提到 e-mail 这个东西嘛!好了,如果我们要设置一个对外打开的邮件主机的时候,那么最好对于邮件空间有点限制比较好,免得如同上面提到的一些问题一样,造成用户的使用权不一!所以说,使用 quota 确实是一个好建议!这个时候该怎么办呢?什么怎么办?嗯!是这样的,由于 quota 『只能针对一个 partition 进行整体的磁盘配额,无法针对某个目录进行磁盘配额!』针对这个观念,我们不难发现,『(1)将邮件存在个人的家目录与 (2)将邮件统一放在 /home 下的一个共用目录』是一样的!为什么呢?这是因为 quota 针对的是一个磁盘呀!呵呵!所以啰,您必须先确定『您的 /home 是一个独立的 partition 』才行!当然啰,您也可以使用其他的独立的 partition 来进行底下的步骤!但是在这里,我们缺省以 /home 这一个目录来假定这一个目录是一个独立的 partition !
      如此则在 /home 底下,由于每个人的磁盘配额已经设置好了!所以当然啰!该信件就可以得到完整的 quota 限额的限制了!所以呢,就需要进行下面的步骤:
      1. 上面设置 的方式设置好用户 quota 的所有工作(即是在 /home 这个 partition );
      2. 将 /var/spool/mail 这个邮件缺省的文件夹备份到其他的目录去;
      3. 创建 /home/mail,这是因为假设我们的邮件放置在这个目录中;
      4. 修改 /home/mail 的属性,使成为 拥有者 root ,群组 mail ,及属性为 775 才行!
      5. 将 /home/mail 给他 Link 到 /var/spool/mail 去即可!
      6. 以后每个人的邮件将都会放置 /home/mail 这个目录中!
      1. 创建并修改 /home/mail 这个目录:
      [root @test /root ]# mkdir /home/mail
      [root @test /root ]# chown root:mail /home/mail
      [root @test /root ]# chmod 775 /home/mail

      2. 备份并移动原本的 mail 到 /home/mail 底下去:
      [root @test /root ]# cp -r /var/spool/mail /var/spool/mail.back
      [root @test /root ]# mv /var/spool/mail/* /home/mail
      [root @test /root ]# rmdir /var/spool/mail

      3. 创建链接:
      [root @test /root ]# ln -s /home/mail /var/spool/mail

      只要这样的一个小步骤,嘿嘿!您家主机的邮件就有一定的限额啰!当然啰!您也可以依据不同的用户与群组来设置 quota 然后同样的以上面的方式来进行 link 的动作!嘿嘿嘿!就有不同的限额针对不同的用户提出啰!很方便吧!! ^_^

    本章习题练习 ( 要看答案请将鼠标移动到『答:』底下的空白处,按下左键圈选空白处即可察看)

    • 如果我有一个 Linux 主机,未来想要对外提供 mail 与 WWW 的服务,同时预计提供个人网页空间的服务,然而我希望 mail 提供 30 MB 而 WWW 则提供 20MB 的空间,那么我应该如何规划我的主机?

    • 答:
        在 quota 的限制中,由于他限制的是整个 partition 呢!所以既然要分为两个服务来限制,就需要设置成两个 partition 了!这个案例当中是以 Linux 为新架设的角度来看,所以我们的规划就较为简单!假设我的硬盘为 30GB 的硬盘,那么我可以这样设置:
          /  256 GB
          Swap 2 * RAM
          /usr  3~5 GB
          /backup 5GB
        其他的空间平均分给
          /home
          /var/spool/mail
        这样就可以啦!然后安装完成之后,套用 quota 的设置,即可做好限制啰!很是方便的!
    修改历史:
    • 2002/07/14:第一次完成
    • 2003/02/10:重新编排与加入 FAQ
    • 2003/09/02:加入 quotacheck 发生错误时的解决方法。
    其他链接
    环境工程模式篇
    鸟园讨论区
    鸟哥旧站

    今日 人数统计
    昨日 人数统计
    本月 人数统计
    上月 人数统计