如何理解文件扩展权限ACL

这篇文章给大家介绍如何理解文件扩展权限ACL,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

专注于为中小企业提供成都网站制作、网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业南澳免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上1000+企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

文件扩展权限ACL

扩展ACL :access control list

ACL(Access Control List)即访问控制列表。主要是针对单一用户,单一文件或目录进行rwx权限的细部设定。可以针对用户(User)、群组(Group)、默认属性掩码(umask)进行设置。

ACL权限的开启

1.查看acl权限是否支持(文件系统是否支持ACL权限):

    a.ext4文件系统:使用 dumpe2fs -h /dev/sda3 来查看超级块中的信息,

里面有 Default mount options:    user_xattr acl 或者使用 mount 查询

    b.xfs文件系统 :xfs系统貌似已经强制开启了ACL权限了

2.开启acl权限

    a.临时开启:mount -o remount,acl / (remount:重新挂载;[,acl]添加acl权限;[/]分区)

    b.永久开启:编辑我们开机挂载文件/etc/fstab

ACL参数

getfacl:取得文件或目录的ACL设置信息。 

-a , --access:显示文件或目录的访问控制列表。

-d , --default:显示文件或目录的默认(缺省)的访问控制列表。

-c , --omit-header:不显示默认的访问控制列表。

-R , --recursive:操作递归到子目录。

-t , --tabular:使用列表输格式出ACL设置信息。

-n , --numeric:显示ACL信息中的用户和组的UID和GID。

-p , --absolute-names:

-v , --version:显示命令的版信息

-h , --help:显示命令帮助信息。

setfacl:设置文件或目录的ACL设置信息。

-m, --modify=acl:修改文件或目录的扩展ACL设置信息。

-M, --modify-file=file:从一个文件读入ACL设置信息并以此为模版修改当前文件或目录的扩展ACL设置信息。

-x, --remove=acl:从文件或目录删除一个扩展的ACL设置信息。

-X, --remove-file=file:从一个文件读入ACL设置信息并以此为模版删除当前文件或目录的ACL设置信息。

-b, --remove-all:删除所有的扩展的ACL设置信息。

-k, --remove-default:删除缺省的acl设置信息。

--set=acl:设置当前文件的ACL设置信息信息。

--set-file=file:从文件读入ACL设置信息来设置当前文件或目录的ACL设置信息。

--mask:重新计算有效权限,即使ACL mask被明确指定。

-n, --no-mask:不要重新计算有效权限。setfacl默认会重新计算ACL mask,除非mask被明确的制定。

-d, --default:设置默认的ACL设置信息(只对目录有效)。

-R, --recursive:操作递归到所有子目录和文件。

-L, --logical:跟踪符号链接,默认情况下只跟踪符号链接文件,跳过符号链接目录。

-P, --physical:跳过所有符号链接,包括符号链接文件。

--restore=file:从文件恢复备份的acl设置信息(这些文件可由getfacl -R产生<---针对目录)。通过这种机制可以恢复整个目录树的acl设置信息。此参数不能和除--test以外的任何参数一同执行。

--test:测试模式,不会改变ACL设置信息。

-v, --version:显示程序的版信息。

-h, --help:显示帮助信息。

chacl:同setfacl,也是用来设定ACL设置信息。用法类似于chmod。不常用。

例1:设置用户mk对文件a.txt拥有的rwx权限,mk不属于a.txt的所属主和组,mk是other。怎么做?

以root身份创建文件a.txt

[root@xuegod63 ~]# touch /tmp/a.txt

查看acl权限,这里可以看到拥有者和属组都是root

[root@xuegod63 ~]# getfacl  /tmp/a.txt

getfacl: Removing leading '/' from absolute path names

# file: tmp/a.txt

# owner: root

# group: root

user::rw-

group::r--

other::r—

这里我们让mk用户对a.txt拥有rwx权限

setfacl -m u:mk:rwx   /tmp/a.txt u: 设置某个用户拥有的权限

再次查看acl权限

[root@xuegod63 ~]# getfacl  /tmp/a.txt

getfacl: Removing leading '/' from absolute path names

...

user::rw-

user:mk:rwx

切换到mk用户,发现可以编辑,并且查看权限

[mk@xuegod63 ~]$ vim /tmp/a.txt

[mk@xuegod63 ~]$ ll /tmp/a.txt

-rw-rwxr--+ 1 root root 8 5月   8 22:42 /tmp/a.txt

例2:给目录加扩展权限

[root@xuegod63 ~]# mkdir /tmp/test

#setfacl -m d:u:mk:rwx /tmp/test   #d  默认在就是有这个权限

例3:给目录下所有文件都加扩展权限

[root@xuegod63 ~]# setfacl -R -m u:lee:rw- testdirectory/ 

#-R一定要在-m前面,表示目录下所有文件

[root@xuegod63 ~]# setfacl -x u:mk /tmp/a.txt          # 去掉单个权限

[root@xuegod63 ~]# setfacl -b /tmp/a.txt              # 去掉所有acl权限

关于如何理解文件扩展权限ACL就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


网页名称:如何理解文件扩展权限ACL
文章出自:http://azwzsj.com/article/ggjhih.html