您的位置:首页 > 其它

磁盘配额quota与samba的结合 …

2013-02-03 23:45 429 查看
一.环境要求,解决问题

 

1.公司多个部门,有时候同一个部门要占用同一个共享硬盘空间,而文件服务器的空间是有限的,为了限制一个部门过多的占用共享空间而让其他部门的文件无法存放,就要给共享硬盘做一个配额,规定某一个部门最多占用一定的空间。

2.文件系统是在linux系统上,为了能让windows机器也能访问到,所以要采用samba文件系统。

3.要限制空间大小,就要采用quota.

 

二.配置磁盘配额quota

 

1.安装quota包

[root@localhost ~]# rpm -qa | grep quota

quota-3.13-1.2.5.el5

2.重新设置/etc/fstab挂载选项,并重启来完成挂载

重新设置前:

[root@localhost ~]# vim /etc/fstab 

LABEL=/                
/                      
ext3   
defaults       
1 1

...

[root@localhost ~]# mount

/dev/sda3 on / type ext3 (rw)

...

设置后,重启:

[root@localhost ~]# vim
/etc/fstab 

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

...

[root@localhost ~]# mount

/dev/sda3 on / type ext3 (rw,usrquota,grpquota)

...

3.创建用户或组,给此用户或组做磁盘限定

useradd steve

passwd steve

4.建立配额文件,分别对用户和组

quotacheck -cmug /

配额文件会自动建立在分区文件系统的根目录中

[root@localhost ~]# ll


总计 178

-rw-------  1 root 
root   9216 11-23 17:31
aquota.group

-rw-------  1 root 
root   8192 11-23 17:32
aquota.user

...

5.给用户steve添加配额

[root@localhost ~]# edquota -u
steve  (-u参数为配置用户,如果为给组配置,参数为-g)

Disk quotas for user steve (uid 500):

 
Filesystem                  
blocks      
soft      
hard    
inodes    
soft    
hard

 
/dev/sda3                    
16864    
100000    
200000        
13       
0       
0

解释:列表中第一列Filesystem为要处理的分区;

第二列blocks为硬盘的当前blocks状态,不能改变(硬盘存储文件要写入block,同时占用一个inode),单位为K;

第三列soft为软限制,当所占空间大小超过这个值时就会报警,单位为KB;

第四列hard为硬限制,要比soft的值大,单位同为KB;

第五列及后面的两列是对inode数目就行限制的,单位为个数。

我上面设置的为100M,200M。

6.查看配置情况

[root@localhost ~]# quota -u steve

Disk quotas for user steve (uid 500): 

    
Filesystem 
blocks  
quota  
limit  
grace  
files  
quota  
limit   grace

     
/dev/sda3  
16864  100000 
200000             
13      
0      


7.启动配额项

quotaon -avug

8.如果要修改配额项,要进行重启

quotaoff -a 先停止

再重新配置

quotaon -avug 再启动

9.测试

[root@localhost ~]# su -  steve

[steve@localhost ~]$ cp
samba-3.0.33-3.7.el5.i386.rpm  1

[steve@localhost ~]$ cp
samba-3.0.33-3.7.el5.i386.rpm  2
[steve@localhost ~]$ cp
samba-3.0.33-3.7.el5.i386.rpm  3

[steve@localhost ~]$ cp
samba-3.0.33-3.7.el5.i386.rpm  4

[steve@localhost ~]$ cp
samba-3.0.33-3.7.el5.i386.rpm  5

sda3: warning, user block quota
exceeded.   #达到100M时,开始报警

[steve@localhost ~]$ du -sh

99M    
.

硬盘配额成功配置,下面就是与samba的应用

 

三.配置samba文件系统

 

1.安装samba包

为解决依赖关系,先安装上这个包:
perl-Convert-ASN1-0.20-1.1.noarch.rpm

[root@localhost ~]# rpm -qa | grep
samba

samba-3.0.33-3.7.el5

samba-common-3.0.33-3.7.el5

samba-client-3.0.33-3.7.el5

2.配置

主要配置为以下的选项

[root@localhost ~]#  grep
^[^#] /etc/samba/smb.conf  | grep ^[^;]

[global]

       
workgroup = MYGROUP

       
security =
user   #用户访问模式,如果为非用户模式为share

       
passdb backend = tdbsam

     

       
load printers = yes

       
cups options = raw

[disk]

       
path =
/disk   #共享目录

       
browseable = yes  #可浏览器访问

       
writable =
yes   #可写

       
guest ok =
no   #不能匿名访问

       
valid users =
steve  #可访问的用户,前提是系统用户

3.创建/disk目录,并设置所属用户与组

mkdir /disk

chown steve.steve /disk

chmod 700 /disk

4.创建samba用户,前提是系统用户

smbpasswd -a steve

5.重启smb

service smb restart

6.测试

在一台与此smb机器能连通的机器上映射此samba文件系统
\ServerIPdisk
发现此分区的可用空间为100M

 

四.quota的group限定与samba

 

事实在实际工作中,不会单独的给某一个用户进行限定,而是给一个组。比如一个部门,每人都有自己的用户名,同时能访问到属于这个部门的共享空间。我们只要把这些用户名同属于一个组,然后对这个组就行限定就可以了。

 

1.建立组与用户

groupadd template

useradd -g template kaka

useradd -g template martin

useradd -g template roben

2.设定quota

#edquota -g template

Disk quotas for group template (gid 500):

 
Filesystem                  
blocks      
soft      
hard    
inodes    
soft    
hard

 
/dev/sda3                       
36    
150000    
250000         
9       
0       
0

~

#quotaoff -a

#quotaon -avug

3.设定samba用户

smbpasswd -a kaka

smbpasswd -a martin

smbpasswd -a roben

4.配置smb.conf

[root@localhost ~]#  grep
^[^#] /etc/samba/smb.conf  | grep ^[^;]

[global]

       
workgroup = MYGROUP

       
security =
user   #用户访问模式,如果为非用户模式为share

       
passdb backend = tdbsam

     

       
load printers = yes

       
cups options = raw

[disk]

       
path =
/disk   #共享目录

       
browseable = yes  #可浏览器访问

       
writable =
yes   #可写

       
guest ok =
no   #不能匿名访问

       
valid users =
kaka,martin,roben #可访问的用户,前提是系统用户

5.改变共享目录所属组与权限

chown .template /disk

chmod 770 /disk

6.重启samba,进行测试,发现每个用户查看共享都为同样的空间150M。完成!

 

五.讨论

 

问:如果对组限定后,并对属于此组的某个用户也进行了限定,但是限定空间大小不同,会根据哪个来?

答:经过测试,为根据限定小的那个。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: