2017年3月15日 setacl授权相关的两个小题 - xhj8816216/linux- GitHub Wiki

如果有两个用户tom和 jerrry,tom用户将相应管理的目录设置为共享权限,jerry是否可以进行访问

如果jerry如何进行访问?

提示:

不能用root用户权限,因为root用户在企业中不一定谁都可以有权限使用

FACL: FilesystemAccess Control List(文件系统访问控制列表);

利用文件扩展属性,保存了额外的访问权限,即可以指定相应的用户访问这个文件有什么样的权限

即:tom所要共享的目录,所属的属主依然是tom,所属的属组依然是jerry,并且其它用户权限依然是只读

只是对共享目录的访问权限进行额外指定,指定jerry这个用户具有rw的权限,但是对目录而言,jerry不是属主也不是属组,所以是利用了文件的扩展属性。

如何利用命令进行实现对文件的授予额外的访问权限

setfacl命令:表示设置acl信息

getfacl命令:表示获取acl信息

[root@nfs-server data]#mkdir /backup [root@nfs-server data]# cd/backup [root@nfs-server backup]#cp /etc/inittab ./ [root@nfs-server backup]#getfacl inittab #<- 查看相应文件的acl信息

file: inittab #<- 表示说明文件的名称信息

owner: root #<- 表示说明文件的属主信息

group: root #<-表示说明文件的属组信息

user::rw- #<- 表示属主的权限信息 group::r-- #<- 表示属组的权限信息 other::r-- #<- 表示其它用户的权限信息

说明:并没有额外的扩展的访问控制列表信息。

如果需要实现对文件的拥有额外扩展的访问控制列表权限:

需要使用setfacl命令进行配置即可,setfacl命令涉及到的命令参数如下说明:

参数 参数说明

-m 表示设定额外的访问控制列表;设定可以设定在用户上,也可以设定在组上,要分开设定 u:UID:perm 表示设定在用户上,对指定用户有什么样的扩展访问权限 g:GID:perm 表示设定在用户组上,对指定用户组有什么样的扩展访问权限 -x 表示取消额外的访问控制列表

setfacl -x u:oldboyinittab setfacl -x g:oldboyinittab

[root@nfs-server backup]#setfacl -m u:oldboy:rw inittab [root@nfs-server backup]#su - oldboy [oldboy@nfs-server ~]$ cd/backup [oldboy@nfs-serverbackup]$ echo test.inf >>inittab [oldboy@nfs-serverbackup]$ tail -1 inittab test.inf [root@nfs-server backup]#getfacl inittab

file: inittab

owner: root

group: root

user::rw- user:oldboy:rw- #<- 多了一个扩展的额外的用户访问权限信息 group::r-- mask::rw- other::r--