原文链接:RHCSA练习题 - 文件权限设定
文件权限设定 :
复制文件/etc/fstab到/var/tmp目录下,并按照以下要求配置/var/tmp/fstab文件的权限:
- 该文件的所属人为root
- 该文件的所属组为root
- 该文件对任何人均没有执行权限
- 用户natasha对该文件有读和写的权限
- 用户harry对该文件既不能读也不能写
- 所有其他用户(包括当前已有用户及未来创建的用户)对该文件都有读的权限
⛲解题过程
1 拷贝并查看权限
[root@server0 ~]# cp /etc/fstab /var/tmp/fstab
[root@server0 ~]# ls -al /var/tmp/fstab
我们可以发现该文件的所属人为root,该文件的所属组为root,该文件对任何人均没有执行权限,前三个要求都已经满足了
2 设置文件访问控制列表setfacl
-m 参数表示设定 ACL 权限。如果是给予用户 ACL 权限,参数则使用 "u:用户名:权限" 的格式,例如 setfacl -m u:st:rx /project 表示设定 st 用户对 project 目录具有 rx 权限;如果是给予组 ACL 权限,参数则使用 "g:组名:权限" 格式,例如 setfacl -m g:tgroup:rx /project 表示设定群组 tgroup 对 project 目录具有 rx 权限。
默认是设置用户的权限,也就是对用户设置的话,可以省略u:
[root@server0 ~]# setfacl -m natasha:rw /var/tmp/fstab
取消所有权限,可以用“-”来表示
[root@server0 ~]# setfacl -m harry:- /var/tmp/fstab
3 查看文件访问控制列表getfacl
getfacl 命令用于查看文件或目录当前设定的 ACL 权限信息。
[root@server0 ~]# getfacl /var/tmp/fstab
我们可以看到之前设置的用户natasha和harry的权限是否设置正确。同时我们可以看到other::r-- 权限,表示所有其他用户(包括当前已有用户及未来创建的用户)对该文件都只有读的权限,不需要再做额外的设置
>>本题完成🤞
🪄 知识拓展
Linux 系统中的 Access Control List
Linux 系统传统的权限控制方式,无非是利用 3 种身份(文件所有者,所属群组,其他用户),并分别搭配 3 种权限(读 r,写 w,访问 x)。也可以这么说,设定文件的访问权限,除了用传统方式(3 种身份搭配 3 种权限),还可以使用 ACL 进行设定。ACL 允许你给任何的用户或用户组设置任何文件或目录的访问权限
ACL权限使用"+"来标识, 权限位后面多了一个"+",表示此文件或目录拥有ACL权限