关于在linux下磁盘定额的实现
1. 问题的提出:
能够限制用户在服务器上使用一定的硬盘空间,是作为公用服务器所必须的。
在这方面linux 比Windows NT有明显的优势。
2. 需求说明:
需建FTP服务器,在系统中有多个用户, 需如下分配磁盘定额:
user name group home_dir 定额
----------------------------------------------------------
co_user01 company01 /home/company 60M
co_user02 company01 /home/company
-----------------------------------------------------------
user01 user01 /home/user01 30M
-----------------------------------------------------------
user02 user02 /home/user02 30M
-----------------------------------------------------------
user03 user03 /home/user03 30M
3. 解决步骤:
a. 我们使用系统为Red hat 5.2 , 用户已按上述需求设好帐号。
b. 由于使用了Redhat5.2 ,系统内核缺省情况是支持磁盘定额的,而且
启动脚本启动磁盘定额服务。(在/etc/rc.d/rc.sysinit中,你可以
看到在安装完所有分区后,有quotaon -a 及quotacheck -avug的设置。)
c. 现在(1999/04/10)linux的磁盘定额只支持ext2分区。这时,我们要
指定系统中哪一个分区要做定额设置。你可编辑/etc/fstab文件来指定,
原文件:
/dev/hda3 / ext2 defaults 1 1
/dev/hda1 /winnt vfat defaults 0 0
/dev/hda2 /my_ntfs ntfs defaults 0 0
/dev/hda4 swap swap defaults 0 0
/dev/fd0 /mnt/floppy ext2 noauto 0 0
/dev/cdrom /mnt/cdrom iso9660 noauto,ro 0 0
none /proc proc defaults 0 0
改为
/dev/hda3 / ext2 defaults,usrquota, grpquota 1 1
/dev/hda1 /winnt vfat defaults 0 0
/dev/hda2 /my_ntfs ntfs defaults 0 0
/dev/hda4 swap swap defaults 0 0
/dev/fd0 /mnt/floppy ext2 noauto 0 0
/dev/cdrom /mnt/cdrom iso9660 noauto,ro 0 0
none /proc proc defaults 0 0
*** 千万不要把usrquota写成userquota, 后果并不是想象的那么简单。
d.
在指定的要做定额的分区的根目录中建立空文件quota.user及quota.group并把权限指定为
只有root可更改。
# touch quota.user
# touch quota.group
# chmod 600 quota.user
# chmod 600 quota.group
e. 这时,我们重新启动系统
# reboot
f.
在系统重新启动后,我们就可以用edquota命令或linuxconf软件为用户来划分磁盘定额了。
用linuxconf比较容易。... ...
g. 这样全部设置就告完成,使用repquota -a 命令看看。
参考资料 http://mud.263.net/~linux/doc/CLDP/mini/Quota.html
wangwei
mailto: wangwei@computer-china.com