一.环境要求,解决问题
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 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文件系统
发现此分区的可用空间为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。完成!
五.讨论
问:如果对组限定后,并对属于此组的某个用户也进行了限定,但是限定空间大小不同,会根据哪个来?
答:经过测试,为根据限定小的那个。
阅读(4585) | 评论(2) | 转发(0) |