一、
1.为了限制一个部门过多的占用共享空间而让其他部门的文件无法存放,就要给共享硬盘做一个配额,规定某一个部门最多占用一定的空间。
2.文件系统是在linux系统上,为了能让windows机器也能访问到,所以要采用samba文件系统。
3.要限制空间大小,就要采用quota.
二.配置磁盘配额quota
1.安装quota包
[root@localhost ~]# rpm -qa | grep quota
quota-3.17-16.el6.x86_64
2.重新设置/etc/fstab挂载选项,并重启来完成挂载
重新设置前:
[root@localhost ~]# vim /etc/fstab
UUID=dbaec1a5-d027-40bb-9cc1-54097084f19e / ext4 defaults,usrquota,grpquota 1 1
...
[root@localhost ~]# mount
/dev/sda3 on / type ext3 (rw)
...
设置后,重启:
[root@localhost ~]# vim /etc/fstab
UUID=dbaec1a5-d027-40bb-9cc1-54097084f19e / ext4 defaults,usrquota,grpquota 1 1
...
[root@localhost ~]# mount
/dev/sda1 on / type ext4 (rw,usrquota,grpquota)
...
或者将你想要做配额的分区重新挂载,并添加usrquota,grpquota选项参数,例如
mount /dev/nova-volumes/test /media/ -o usrquota,grpquota
3.创建用户或组,给此用户或组做磁盘限定
useradd share
useradd user1 –g share
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.给用户user1添加配额
[root@localhost ~]# edquota -u user1 (-u参数为配置用户,如果为给组配置,参数为-g)
Disk quotas for user user1 (uid 501):
Filesystem blocks soft hard inodes soft hard
/dev/sda1 10240 5120 10240 12 0 0
解释:列表中第一列Filesystem为要处理的分区;
第二列blocks为硬盘的当前blocks状态,不能改变(硬盘存储文件要写入block,同时占用一个inode),单位为K;
第三列soft为软限制,在正常操作期间用户或组允许使用的 1KB 的块数。这是最低限制容量的意思,使用者在宽限期间之内,他的容量可以超过 soft ,但必需要宽限时间之内将磁盘容量降低到 soft 的容量限制之下;
第四列hard为硬限制,要比soft的值大,用户或组可被允许使用的 1KB 的总块数,包括在 quota 宽限期内临时存储器。这是绝对不能超过的容量!跟 soft 相比的意思为何呢?通常 hard limit 会比 soft limit 为高,例如网络磁盘空间为 30 MB ,那么 hard limit 就设定为 30MB ,但是为了让使用者有一定的警戒心,所以当使用空间超过 25 MB 时,例如使用者使用了 27 MB 的空间时,那么系统就会警告使用者,让使用者可以在宽限时间内将他的档案量降低至 25 MB ( 亦即是 soft limit )之内!也就是说, soft 到 hard 之间的容量其实就是宽限的容量;
第六列,节点软限制,在正常操作期间用户或组允许使用的文件数。单位为个数。
第七列,节点硬限制,用户或组被允许创建的总文件数,包括在 quota 宽限期内的临时文件。单位为个数。
设置某个配额为零表示不施加任何配额限制。
宽限时间:也就是当您的使用者使用的空间超过了 soft limit ,却还没有到达 hard limit 时,那么在这个宽限时间之内,就必需要请使用者将使用的磁盘容量降低到 soft limit 之下!而当使用者将磁盘容量使用情况超过 soft limit 时,宽限时间就会自动被启动,而在使用者将容量降低到 soft limit 之下,那么宽限时间就会自动的取消。
如果想使用shell直接配置配额,则可以使用setquota命令
setquota -u user5 5120 10240 300 500 /home
5120表示软块数,就是说容量软限制80M
10240表示硬块数,容量硬限制100M
300表示软节点,意思就是文件多少软线限制300个文件或者文件夹
500表示硬节点。。。
/home就是要设置的文件系统挂载点
6.查看配置情况
[root@localhost ~]# quota -u user1
Disk quotas for user user1 (uid 502):
Filesystem blocks quota limit grace files quota limit grace
/dev/sda1 10240* 5120 10240 7days 12 0 0
7.启动配额项
quotaon -avug
8.关闭配额
quotaoff -a 先停止
9.测试
[root@localhost ~]# su user1
[steve@localhost ~]$ dd if=/dev/zero of=/home/user1/test bs=1M count=1
[steve@localhost ~]$ cp test test1
[steve@localhost ~]$ cp test test2
[steve@localhost ~]$ cp test test3
[steve@localhost ~]$ cp test test4
Sda1: warning, use block quota exceeded. #达到5M时,开始报警
[steve@localhost ~]$ du -sh
5M .
硬盘配额成功配置,下面就是与samba的应用
三.配置samba文件系统
1.安装samba包
[root@localhost ~]# rpm -qa | grep samba
samba-winbind-clients-3.5.10-125.el6.x86_64
samba-3.5.10-125.el6.x86_64
samba-common-3.5.10-125.el6.x86_64
2.配置
主要配置为以下的选项
[root@localhost ~]# grep ^[^#] /etc/samba/smb.conf | grep ^[^\;]
[global]
workgroup = MYGROUP
security = user #用户访问模式,如果为非用户模式为share
passdb backend = tdbsam
load printers = yes
cups options = raw
[share]
path = /share #共享目录
browseable = yes #可浏览器访问
writable = yes #可写
guest ok = no #不能匿名访问
valid users = @share #可访问的用户组,前提是系统用户
3.创建/disk目录,并设置所属用户与组
mkdir /share
chown user1:share /share
4.创建samba用户,前提是系统用户
smbpasswd -a user1
5.重启smb
service smb restart
6.测试
在一台与此smb机器能连通的机器上映射此samba文件系统
\\ServerIP\share
发现此分区的可用空间为10M
四.quota的group限定与samba
事实在实际工作中,不会单独的给某一个用户进行限定,而是给一个组。比如一个部门,每人都有自己的用户名,同时能访问到属于这个部门的共享空间。我们只要把这些用户名同属于一个组,然后对这个组就行限定就可以了。
1.建立组与用户
groupadd share
useradd -g share user2
useradd -g share user3
useradd -g share user4
2.设定quota
#edquota -g template
Disk quotas for group template (gid 501):
Filesystem blocks soft hard inodes soft hard
/dev/sda1 36 150000 250000 9 0 0
~
3.设定samba用户
smbpasswd -a user2
smbpasswd -a user3
smbpasswd -a user4
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
[share]
path = /disk #共享目录
browseable = yes #可浏览器访问
writable = yes #可写
guest ok = no #不能匿名访问
valid users = @share #可访问的用户组,前提是系统用户
5.改变共享目录所属组与权限
chown user1:share /share
chmod 770 /share
6.重启samba,进行测试,发现每个用户查看共享都为同样的空间150M。完成!
注意:如果对组限定后,并对属于此组的某个用户也进行了限定,但是限定空间大小不同,为根据限定小的那个决定可用空间