ACL与磁盘配额结合应用小结

linux 系统下,对于文件系统权限而言,常用的是 DAC (自由访问控制),假设 root 要赋予某个用户执行权限,就必须添加该文件的执行权限。于此同时,另外一些不怀好意用户就有可能利用该权限进行一些增删剪除等破坏活动。这时,我们可以用到 ACL (扩展访问控制)来解决这样的问题。在现实中用于 Samba 服务器的设置中。
   ACL 可以对现有的文件权限进行扩充,在传统的 DAC 模型之外为文件新添加控制协议。
   当然了,我们你必须首先要启用 ACL 功能。
 
   在根目录下创建 share 文件夹,使其具有读写权限。
并新建磁盘分区为 /dev/sda5 ,格式化后并挂载在 root 目录下的 /share 目录下,
新建用户 liu ,使 liu 用户在 share 文件具有读写权限的情况下具有执行权限。在没有设置之前,用户 liu 没有执行权限。(可以和后面 liu 具有执行权限之后进行对比一下)
首先用 vim 编辑器打开 /etc/fstab 文件,在该文件中新增加一行(这样做的目的是使 acl 权限永久生效当然也可以只对当前用户生效。如果在挂载时在 mount 加上 -o acl ,后面跟正常的挂载参数即可即: mount  -o acl /edv/sda5  /share ),如图所示最后一行,后面的 usrquota
grpquota 是后文中做磁盘配额时要用到的,后面会介绍到,这里先不多说。
别忘了,挂载完成后查看一下是否挂在成功,直接输入 mount 即可查看挂载情况。
接下来要做的是设置文件的访问控制功能。可以用 setfacl 这个命令来执行。
setfacl 的用法格式是: setfacl [-bkndRLPvh] [{-m|-x} acl_spec] [{-M|-X} acl_file] file ...
例如:
setfacl -x g:staff file
意思是:删除 file 文件对 staff 组的 acl 控制属性
setfacl -m m::rx file
意思是:设置默认 file 文件属性
setfacl -m u:lisa:r file
意思是:增加 lisa 用户对文件 file 的读权限。
好了,言归正传,现在开始设置 share 文件的 acl 属性,
setfacl  �Cm u liu rwx  /share
设定 liu 用户对 share 文件具有可读可写可执行权限,设定完毕后,用 fetfacl  share 命令查看一下是否设定成功。
修改成功后,可以切换到 liu 用户,验证一下是否具有执行权限。验证结果为 liu 用户具有执行权限。
同样,还可以设定属组权限为可读和可执行,比如: setfacl �Cm g:mygroup:rw  share
好了,关于设置文件访问控制权限就到这里,接下来,去了解一下关于磁盘配额的问题。
还是以上面的磁盘 /dev/sda5 为例子,依然挂载在 /share 目录下。
磁盘配额主要是设置在对磁盘空间不足的情况下,对用户使用磁盘空间进行限制。在 linux 服务器的配置中应用广泛。比如:
限制某一群组所能使用的最大磁盘配额 ( 使用群组限制 )
限制某一用户的最大磁盘配额 ( 使用用户限制 )
Link 方式使邮件可以作为限制的配额 ( 更改 /var/spool/mail 这个路径 ) 等等。
(注 : 由于真正的 quota 读取的是 /etc/mtab 这个文件 , 但这个文件需要重新启动之后才能够以 /etc/fstab 的新数据进行改写 , 所以这时可以 :
1 、重新启动系统 ==>reboot
2 、重新使用 remount filesystem 来驱动设定值。)
 
 
quota 程序的限制内容主要分为以下几个部分:
soft:  (软限制)这是最低限制容量 , 用户在宽限期间的容量可以超过 soft, 但必须在宽限时间内将磁盘容量降低到 soft 的容量限制下 .
hard:  (硬限制)这是绝对不能超过的容量 . soft 相比 , 通常 hard 的限度会比 soft 的限度高 , 其实 ,soft hard 之间的容量就是宽限的容量 , 可以起到警示作用 .
宽限时间 : 宽限时间就是用户使用的空间超过了 soft limit, 但还没有到达 hard limit, 在这个宽限时间内 , 用户需要将使用的磁盘容量降低到 soft limit 之下 . 当用户的磁盘容量使用情况超过 soft limit , 宽限时间就会自动启动 , 而在用户将容量降低至 soft limit 之下 , 宽限时间就会自动取消。
首先要做的是开启磁盘的 quota 功能(上面的 usrquota grpquota 在此处会用到):
编辑 /etc/fstab 文件 , 加入 usrquota grpquota 。使用命令 mount �Co remount 重新挂载磁盘, , 使 quota 磁盘可以支持 quota 。完成后用 mount 命令查看一下是否成功。
接着是使用 quotacheck 扫描要使用的磁盘。
使用 edquota 来编辑 liu 用户(或群组)的可使用空间 ;
命令为 edquota �Cu liu  
注:(设置组的命令为ed quota �Cg groupname
设置完成后保存退出,那下一步呢?当然是启动 quota 了,命令如下:
quotaon �Cvu share 
 
(当然喽!启动 quota 群组时要使用 quotaon �Cvg filename 命令咯)
  (同理,关闭 quota 用户或群组时要用 quotaoff 命令哦! ^_^
接下来用 edquota �Ct 命令(后面不跟任何参数)来设定当用户超过软限制后,继续使用超出软限制的磁盘空间的宽限期。意思就是当用户的磁盘空间使用量超过软限制以后要在指定的时间内把超出软限制的磁盘空间清空,否则,哼哼!那就对你不起啦,系统就会帮你“清空”了。一般默认的宽限时间为 7 天,但是具体的宽限期就看管理员 root 是怎么设置的了。
 
好了,设置完成了,但是到底设置的这些内容有效吗?来,一块测试一下吧!
su �C liu 命令切换到 liu 用户
share 文件夹下复制一些数据看看。
 

你可能感兴趣的:(职场,acl,休闲,磁盘配额,结合应用)