本文共 2666 字,大约阅读时间需要 8 分钟。
在linux
系统下,对于文件系统权限而言,常用的是DAC
(自由访问控制),假设root
要赋予某个用户执行权限,就必须添加该文件的执行权限。于此同时,另外一些不怀好意用户就有可能利用该权限进行一些增删剪除等破坏活动。这时,我们可以用到ACL
(扩展访问控制)来解决这样的问题。在现实中用于Samba
服务器的设置中。 ACL
可以对现有的文件权限进行扩充,在传统的DAC
模型之外为文件新添加控制协议。 在根目录下创建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 ...
意思是:删除file
文件对staff
组的acl
控制属性 意思是:增加lisa
用户对文件file
的读权限。 好了,言归正传,现在开始设置share
文件的acl
属性, setfacl –m u
:liu
:rwx /share
设定liu
用户对share
文件具有可读可写可执行权限,设定完毕后,用fetfacl share
命令查看一下是否设定成功。 修改成功后,可以切换到liu
用户,验证一下是否具有执行权限。验证结果为liu
用户具有执行权限。 同样,还可以设定属组权限为可读和可执行,比如:setfacl –m g:mygroup:rw share
好了,关于设置文件访问控制权限就到这里,接下来,去了解一下关于磁盘配额的问题。 还是以上面的磁盘/dev/sda5
为例子,依然挂载在/share
目录下。 磁盘配额主要是设置在对磁盘空间不足的情况下,对用户使用磁盘空间进行限制。在linux
服务器的配置中应用广泛。比如: 限制某一群组所能使用的最大磁盘配额 ( 使用群组限制 ) 以 Link 方式使邮件可以作为限制的配额 ( 更改 /var/spool/mail 这个路径 ) 等等。 (注 : 由于真正的 quota 读取的是 /etc/mtab 这个文件 , 但这个文件需要重新启动之后才能够以 /etc/fstab 的新数据进行改写 , 所以这时可以 : 2 、重新使用 remount filesystem 来驱动设定值。) 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 –o remount 重新挂载磁盘, , 使 quota 磁盘可以支持 quota 。完成后用 mount 命令查看一下是否成功。 接着是使用 quotacheck 扫描要使用的磁盘。 使用 edquota 来编辑 liu 用户(或群组)的可使用空间 ; 注:(设置组的命令为ed quota –g groupname ) 设置完成后保存退出,那下一步呢?当然是启动 quota 了,命令如下: (当然喽!启动 quota 群组时要使用 quotaon –vg filename 命令咯) (同理,关闭 quota 用户或群组时要用 quotaoff 命令哦! ^_^ ) 接下来用 edquota –t 命令(后面不跟任何参数)来设定当用户超过软限制后,继续使用超出软限制的磁盘空间的宽限期。意思就是当用户的磁盘空间使用量超过软限制以后要在指定的时间内把超出软限制的磁盘空间清空,否则,哼哼!那就对你不起啦,系统就会帮你“清空”了。一般默认的宽限时间为 7 天,但是具体的宽限期就看管理员 root 是怎么设置的了。 好了,设置完成了,但是到底设置的这些内容有效吗?来,一块测试一下吧! 本文转自 linuxtro 51CTO博客,原文链接:http://blog.51cto.com/linuxtro/275112,如需转载请自行联系原作者