HostGator无限空间、无限流量主机

海外主机侦探论坛

 找回密码
 注册

扫一扫,访问微社区

搜索
美国主机优惠信息汇总出售cPanel CloudLinux R1SoftGodaddy美国空间代购
国外主机资料导航支持支付宝付款的美国主机HostEase速度快中文客服!
查看: 583|回复: 1

Linux主机的具体权限规划-ACL的使用

[复制链接]
发表于 2016-5-23 08:42:59 | 显示全部楼层 |阅读模式
Godaddy美国主机2014年半价优惠大促销
ACL是Access Control List 的缩写,主要的目的是提供传统的owner、group、other的read、write、execute权限之外的具体权限设置.
ACL可以针对单一用户、单一文件或目录来进行r、w、x的权限设置,对于需要特殊权限的使用状况非常有帮助.
那么ACL主要可以针对那些方面来控制权限呢?它主要可以针对几个项目:
* 用户(user):可以针对用户来设置权限;
* 用户组(group): 针对用户组来设置其权限;
* 默认属性(mask): 还可以在该目录下在新建新文件/目录是设置新数据的默认权限.

<1>如何启动ACL
由于ACL是传统UNIX-like操作系统权限的额外支持项目,因此要使用ACL必须要有文件系统的支持才行.目前绝大数的文件系统都有支持ACL的功能.
那我们如何查看你的文件系统是否支持ACL呢?我们可以这样看:
[root@sqj2015 ~]# mount      //直接查看挂载参数的功能
/dev/vda1 on / type ext4 (rw)
............
##这里我们没有看到ACL

[root@sqj2015 ~]# dumpe2fs -h /dev/vda1 | grep \'mount options\'
dumpe2fs 1.41.12 (17-May-2010)
Default mount options:    user_xattr acl
## 由mount单纯去查询不见得可以看到实际的选项,由于目前新的distribution经常会主动加人某些默认功能.

若你的系统默认不会帮你加上acl的支持呢?那么你可以这样操作:
[root@sqj2015 ~]# mount -o remount,acl /
[root@sqj2015 ~]# mount
/dev/vda1 on / type ext4 (rw,acl)
##这样就加入了!但是如果你想要每次开机都生效,则需要这样:
[root@sqj2015 ~]# vi /etc/fstab
/dev/vda1           /               ext4    defaults,acl    1 1

<2>ACL设置技巧
   在文件系统启动ACL支持后,接下来该如何设置与查看ACL呢?很简单,利用以下2个命令就可以了:
getfacl:查看某个文件/目录的ACL设置项目;
setfacl:设置某个目录/文件的ACL规定;

setfacl语法
setfacl [参数] 目标文件名
参数:
-m : 设置后续的acl参数给文件使用,不可与-x合用;
-x : 删除后续的acl参数,不可与-m 合用;
-b : 删除所有acl设置参数;
-k : 删除默认acl参数;
-R : 递归设置acl,亦即包括子目录都会被设置起来;
-d : 设置默认acl参数,只对目录有效,在该目录新建的数据会引用此默认值.

接下来,就来看看setfacl的设置方式:
**针对特定用户的方式:
##设置规定: “u:[用户账号列表]:[rwx]”如下,设置sqj权限为rw:
[root@sqj2015 ~]# touch acl_test
[root@sqj2015 ~]# ll acl_test
-rw-r--r--. 1 root root 0 Mar 21 13:44 acl_test
[root@sqj2015 ~]# setfacl -m u:sqj:rw acl_test
[root@sqj2015 ~]# ll acl_test
-rw-rw-r--+ 1 root root 0 Mar 21 13:44 acl_test
##是否看到了不同,在权限部分多了个+.

[root@sqj2015 ~]# setfacl -m u::rwx acl_test
[root@sqj2015 ~]# ll acl_test
-rwxrw-r--+ 1 root root 0 Mar 21 13:44 acl_test
##若无用户列表,则代表设置该文件所有者,所以上面显示root的权限变成了rwx了.

但我们具体怎么查看设置的ACL呢?如下:
[root@sqj2015 ~]# getfacl acl_test
# file: acl_test
# owner: root
# group: root
user::rwx
user:sqj:rw-
group::r--
mask::rw-
other::r--

**针对特定用户组的方式:
##设置规定: “g:[用户组列表]:[rwx]”,例如,针对sqj组权限rx:
[root@sqj2015 ~]# setfacl -m g:sqj:rw acl_test
[root@sqj2015 ~]# getfacl acl_test
# file: acl_test
# owner: root
# group: root
user::rwx
user:sqj:rw-
group::r--
group:sqj:rw-
mask::rw-
other::r--

**针对有效权限mask的设置方式:
##mask 它的意思是用户或组所设置的权限必须存在与mask的权限设置范围内才能生效,此即有效权限.
##设置规定: “m:[rwx]”,例如针对刚才的文件规定为仅有r权限:
[root@sqj2015 ~]# setfacl -m m:r acl_test
[root@sqj2015 ~]# getfacl acl_test
# file: acl_test
# owner: root
# group: root
user::rwx
user:sqj:rw-                    #effective:r--
group::r--
group:sqj:rw-                   #effective:r--
mask::r--
other::r--
##sqj用户、sqj组与mask的集合仅有r存在,因此sqj仅具有r的权限而已,并不存在w的权限,这就是mask的功能.

**针对默认权限的设置方式:
##设置规定:”d:[ug]:用户列表:[rwx]”
[root@sqj2015 ~]# mkdir acl_test1
[root@sqj2015 ~]# setfacl -m d:u:sqj:rw acl_test1/
[root@sqj2015 ~]# getfacl acl_test1
# file: acl_test1
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
default:user::rwx
default:user:sqj:rw-
default:group::r-x
default:mask::rwx
defaultther::r-x

[root@sqj2015 ~]# cd acl_test1
[root@sqj2015 acl_test1]# touch test
[root@sqj2015 acl_test1]# ll test
-rw-rw-r--+ 1 root root 0 Mar 21 14:16 test
[root@sqj2015 acl_test1]# getfacl test
# file: test
# owner: root
# group: root
user::rw-
user:sqj:rw-
group::r-x                      #effective:r--
mask::rw-
other::r--

##通过这个”针对目录来设置默认ACL权限”的选项,我们可以让这些属性继承到子目录下面.

来源: [url=forum.php?mod=viewthread&tid=885560]Linux主机的具体权限规划-ACL的使用[/url]
发表于 2016-5-23 20:57:30 | 显示全部楼层
美国服务器
众里寻他千百度,蓦然回首在这里!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

论坛言论由会员发布,不代表本论坛观点;非交易论坛,本站不对会员间交易承担任何责任。

代购请联系本站客服


arvixe主机ASP空间

QQ|手机版|小黑屋|Archiver|海外主机侦探  

GMT+8, 2017-8-23 09:54 PM , Processed in 0.168080 second(s), 30 queries .

Copyright©2008-2017 | 关于我们

快速回复 返回顶部 返回列表