十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章给大家介绍如何理解文件扩展权限ACL,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
专注于为中小企业提供成都网站制作、网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业南澳免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上1000+企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
扩展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就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。