这篇文章给大家介绍如何理解文件扩展权限ACL,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
文件扩展权限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就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/199338.html