l inux文件中的一般权限、特殊权限、隐藏权限有一个共性——权限是针对某一类用户设置的如果希望对某个指定的用户进行单独的权限控制,就需要用到文件的访问控制列表(ACL)了通俗的说,基于普通文件或目录设置ACL其实就是针对指定的用户或用户组设置文件或目录的操作权限另外,如果针对某个目录设置了ACL,则目录中的文件会继承其ACL;若针对文件设置了ACL,则文件不再继承其所在目录的ACL,我来为大家科普一下关于如何解决文件的访问限制?以下内容希望对你有帮助!
如何解决文件的访问限制
l inux文件中的一般权限、特殊权限、隐藏权限有一个共性——权限是针对某一类用户设置的。如果希望对某个指定的用户进行单独的权限控制,就需要用到文件的访问控制列表(ACL)了。通俗的说,基于普通文件或目录设置ACL其实就是针对指定的用户或用户组设置文件或目录的操作权限。另外,如果针对某个目录设置了ACL,则目录中的文件会继承其ACL;若针对文件设置了ACL,则文件不再继承其所在目录的ACL。
一、setfacl
setfacl命令用于管理文件的ACL规则,格式为“setfacl [参数] 文件名称”。文件的ACL提供的是在所有者、所属组、其他人的rwx权限之外的特殊权限控制。
1、setfacl参数
-m:设置后续acl参数
-x:删除后续acl参数
-b:删除全部的acl参数
-k:删除默认的acl参数
-R:递归设置acl,包括子目录
-d:设置默认acl
2、案例
#在桌面上创建一个test文件
[root@localhost 桌面]# touch test.txt
#getfacl查看test.txt的权限,可以看到test.txt文件其他用户只有读权限
[root@localhost 桌面]# getfacl test.txt
# file: test.txt
# owner: root
# group: root
user::rw-
group::r--
other::r--
#在test文件中添加内容“Hello world”
[root@localhost 桌面]# echo "heloo world" >> test.txt
[root@localhost 桌面]# cat test.txt
heloo world
#使用setfacl去掉普通用户chensiming读取test文件的权限
[root@localhost 桌面]# setfacl -m u:chensiming:--- test.txt
[root@localhost 桌面]# su chensiming
[chensiming@localhost 桌面]$ cat test.txt
cat: test.txt: 权限不够
3、getfacl:用于查看文件上设置的ACL信息,格式getfacl 文件
,