Linux中限制用户空间0 e6 m( q4 v$ X. A& e% _
在Linux中限制用户的磁盘使用空间使用的是Quota,一般Quota在安装Linux时就已包括在内核中,不需要另行安装。Quota可以从两方面指定磁盘的储存限制: 使用者所能够支配的索引节点(inodes)数量;以及使用者可以取用的磁盘区块数量。在使用Quota监视用户时,一旦用户使用空间超出缓冲值(soft)就会发出警告,如超出限定值(hard)就会禁止用户再储存文件。在 Linux上2.x 版的核心都可以使用 Quota 。使用步骤及方法如下:5 D) L) F6 I, c( A8 y2 t% p# d
⒈开启系统Quota功能:
: |' k2 c0 f7 S P6 v2 _ 1 修改/etc/fstab文件,2 下面是我在我的系统上设定的值:3 D. l5 f( p2 [* J
#device directory type options9 z6 _& C: Q" M+ k/ L. a; q; ? ^
/dev/hda1 / ext2 default 1 1
& A& j, D6 r3 l0 D/ ?- B3 a0 t /dev/hda2 /usr ext2 default 1 1! V3 F3 _- @0 L. I
/dev/hda3 /home ext2 default,usrquota,grpquota 1 1
% e, d2 h% r0 p. T: X+ m 下画线部分(usrquota,grpquota)为另加的部分
+ G4 i% t. M! W8 x" @, e2 k$ z$ p 3 修改/etc/rc.d/rc.local文件,在文件的最后面加入下面语句:- u7 I: Z5 ?, k6 r- G* X
if
; t: I) h" n5 s" `3 B/ W7 g [ -x /usr/sbin/quotaon ] R/ U/ ~9 a* e' K5 _: \3 \
then* t6 U8 g/ f( H+ _# J8 X) a
echo "Quota now is turning on"
2 _ V9 P3 k! P4 _( b+ S2 e4 c( p, r /usr/sbin/quotaon -avug9 `$ u. K) V! ]$ a( ?
4 在quota所在目录(本例为/usr/local/bin)执行quotacheck -avug,这时Quota开始检查所有子目录并建立两个文件:quota.user,quota.group( d3 h1 Q8 T. R- Q& H
5 建立 "quota.user" 记录
; ? e5 x3 _. R% a. s. `6 P quota 记录档(quota.user) 应该由 root 拥有,即 root 有读写的权限而其他任何 人都没有。以 root身份登录Linux服务器,进入想要启用 quota 分区最上层,即如想在/usr建立quota管理: T) L/ M2 ?' L. S" ^! Q
[root@Server/usr]#touch /partition/quota.user* R! p" ^6 T, N" m; W1 B8 o
#chmod 600 /partition/quota.user
$ r* ]7 \" b2 i5 ^1 d9 Y6 [6 重新启动计算机) J0 w6 Z) s! _! _" F
⒉设定用户或用户组的空间限定
4 a f k7 w( b, a* t ①设定用户的磁盘限制:edquota -u 用户名
! r2 ^4 z0 r' U6 N# X 如我系微机室设有一帐户wlx01,当使用命令edquota -u wlx01后出现Vi界面,如下所示:, T+ N) o2 H7 R$ E) g7 {. p
Quotaa for user wlx01:
3 r6 w+ s" v) I9 u% a5 w /dev/hda3:blocks in use:0,limits(soft=0,hard=0)* f- F( W, I2 N, m3 M. O9 a
inodes in use:9,limits(soft=0,hard=0); I+ _' s; L! ?; h/ H9 P [0 Y/ B! W
"blocks in use" 是使用者在某个分割区上已经使用的区块总数(以千位元组为单位) , “inodes in use" 是使用者在某个分割区上所拥有的文件总数。其中只需修改soft和hard两项后的值,单位都是kb。Soft指定占用空间达到多少时给以警告,hard则是为用户分配的可用空间大小
2 l/ w& P1 r0 ~ ②设定用户组的磁盘限制:edquota -g 用户组
) C& ?0 e! g% I5 c( @: v0 l5 W" r/ q ③重复操作:当以设定某个用户而想重复在其他用户上时:
5 M1 Y$ U; U; a4 s6 l4 N8 k& p edquota -p 已设定用户 需设定用户( X/ s, W, v- b& l$ H
当使用 edquota -p wlx01 * 时所有用户都会与wlx01一样
3 [. Y9 A" C/ } O5 F6 o: J& M ⒊常用命令:% E" q/ \3 L* q' m. D0 v( r
Repquota# [4 k# ^4 n+ K$ U' q# ]
edquota –t:对 quota 使用者实行软性限制之前的时间限制。可以使用的时间单位是秒、分、小时、日、星期、以及月。软性限制指出 quota 使用者在分割区上拥有的磁盘用量总数。但是合并使用缓冲期间的时候,它的动作就如同一道临界线,当 quota
8 {! U" [' q! F5 m/ X9 @2 { 使用者超越时便发出有关他即将违犯 quota 的警告。 |