Linux的详细权限规划:ACL使用

1、ACL为访问控制列表,主要目的是提供传统的属主、所属群组、其他人的读、写、执行权限之外的详细权限设置。可以针对单一用户、单一文件或目录来进行r、w、x的权限设置。

2、dmesg | grep -i acl 可以查询本机是否支持ACL的功能。

3、getfacl:获取某个文件/目录的ACL设置选项,setfacl:设置某个目录/文件的ACL规范

4、setfacl命令用法介绍:

用法: setfacl [-bkdR] { -m|-M|-x|-X ... } file ...
-m,       --modify-acl 更改文件的访问控制列表
-M,       --modify-file=file 从文件读取访问控制列表条目更改
-x,       --remove=acl 根据文件中访问控制列表移除条目
-X,       --remove-file=file 从文件读取访问控制列表条目并删除
-b,       --remove-all 删除所有扩展访问控制列表条目
-k,       --remove-default 移除默认访问控制列表
-d,       --default 应用到默认访问控制列表的操作
-R,       --recursive 递归操作子目录

5、案例要求:有两个用户v1,和v2,现在需要v1也能访问v2的家目录,但是不具有修改的权限。

#首先进入v1用户,发现v2的家目录确实无法访问
[root@master ~]# su - v1
Last login: Mon Jul  8 17:57:04 CST 2019 on pts/0
[v1@master ~]$ cd /home/v2
-bash: cd: /home/v2: Permission denied
[v1@master ~]$ exit
logout

#切换回root用户,通过setfacl设置v1权限为rx,目录为v2的家目录
[root@master ~]# setfacl -m u:v1:rx /home/v2
[root@master ~]# getfacl /home/v2
getfacl: Removing leading '/' from absolute path names
# file: home/v2
# owner: v2
# group: v2
user::rwx
user:v1:r-x
group::---
mask::r-x
other::---

#切换回v1用户
[root@master ~]# su - v1
Last login: Mon Jul  8 18:42:21 CST 2019 on pts/0
[v1@master ~]$ cd /home/v2

#发现可以访问
[v1@master v2]$ ll -a
total 12
drwxr-x---+ 2 v2   v2    62 Jul  8 16:31 .
drwxr-xr-x. 7 root root  70 Jul  8 16:31 ..
-rw-r--r--. 1 v2   v2    18 Oct 31  2018 .bash_logout
-rw-r--r--. 1 v2   v2   193 Oct 31  2018 .bash_profile
-rw-r--r--. 1 v2   v2   231 Oct 31  2018 .bashrc

#但是无法创建文件
[v1@master v2]$ touch test
touch: cannot touch ‘test’: Permission denied

5、setfacl可以对账号、用户组名、有效权限设置进行配置
账号: setfacl -m u:v1_user:rx /home/v2
用户组名: setfacl -m g:v1_group:rx /home/v2
有效权限: setfacl -m m:rx /home/v2
(用户或用户组所设置的权限必须要存在于mask的权限设置范围内才会生效)

6、使用默认权限设置目录未来文件的ACL权限继承【d:[u|g]:[user|group]:权限】
例如:让v1在/home/v2下面一支具有rx的默认权限

#创建一个文件/文件夹,发现权限后面没有+,代表这个ACL属性并没有继承。
[root@master v2]# touch a.txt
[root@master v2]# mkdir b

[root@master v2]# ll
total 0
-rw-r--r--. 1 root root 0 Jul  8 19:27 a.txt
drwxr-xr-x. 2 root root 6 Jul  8 19:27 b

#让v1在/home/v2下面一直有rx默认权限
[root@master v2]# setfacl -m d:u:v1:rx /home/v2
[root@master v2]# touch b.txt
[root@master v2]# mkdir a

#查询文件,有了+
[root@master v2]# ll
total 0
drwxr-x---+ 2 root root 6 Jul  8 19:29 a
-rw-r--r--. 1 root root 0 Jul  8 19:27 a.txt
drwxr-xr-x. 2 root root 6 Jul  8 19:27 b
-rw-r-----+ 1 root root 0 Jul  8 19:28 b.txt

#y用getfacl再次查看
[root@master v2]# getfacl /home/v2
getfacl: Removing leading '/' from absolute path names
# file: home/v2
# owner: v2
# group: v2
user::rwx
user:v1:r-x
group::---
mask::r-x
other::---
default:user::rwx
default:user:v1:r-x
default:group::---
default:mask::r-x
default:other::---

7、让ACL的属性全部消失的命名【setfacl -b 文件名】

8、单一设置值的取消,需要通过-x

setfacl -x u:v1 /home/v2
setfacl -x d:u:v1 /home/v2

(针对取消某个账号的ACL时,不需要加上权限列表)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值