ACL(访问控制列表)权限管理

本文涉及的产品
访问控制,不限时长
简介: 一、ACL权限二、rwx权限三、mask权限四、ACL备份和恢复

ACL(访问控制列表)权限管理

 

内容介绍

一、ACL权限

二、rwx权限

三、mask权限

四、ACL备份和恢复

 

 

一、ACL权限


传统权限是根据所有者,所属者和其它人这三种进行设置的,这时存在缺陷,当在一个文件中设置权限时,只能根据这三种人进行设置。权限位有九个位,前三个所有者,中间所属者,最后三个时其它人。这种设置方法导致设置非常不灵活。

 

1.ACL概念

(1).ACL:Access Control List, 实现灵活的权限管理

(2).除了文件的所有者,所属者和其它人,可以对更多的用户设置权限

(3).CentOS7默认创建的 xfsext 文件系统具有ACL功能

(4).CentOS7之前版本,默认手工创建的ext文件系统无ACL功能,需手动增加

Tune2fs -o acl /dev/sdb1

Mount -oacl /dev/sdb1 /mnt/test

(5).ACL生效顺序:所有者,自定义用户,自定义组,其他人

(6).访问控制列表可以实现灵活的权限管理,打破传统权限只能针对三种人设置权限的局限,可以加任何希望指定的用户和所有者。

(7).使用ACL之前要确认当前的文件系统支持ACL

 

2.确定文件系统

[root@centos6 ~]#df -T

/dev/sda3    ext4

[root@centos7 ~]#df -T

/dev/sda2    xfs

 

3.设置ACL权限:

[root@centos7 ~]#cd /data

[root@centos7 data]#11

total o

-rw-r--r-- 1 root root0 sep 28 10:44f1

[root@centos7 data]#su wang

[wang@centos7 data]$ cat f1

[wang@centos7 data] $ exit

exit

[root@centos7 data]#setfacl -m u : wang: - f1

[root@centos7 data]#11

total o

-rw-r--r--+ 1 root_root 0 sep 28 10:44 f1

[root@centos7 data]#su wang

[wang@centos7 data]$cat f1

cat:f1:Permission denied

[wang@centos7 data]$exit

Exit

[root@centos7 data]#11 f1

-rw-r--r--+ 1 rootroot 0 sep 28 10:44f1

[root@centos7 data]#setfacl -m u: mage : rw f1

[root@centos7 data]#11 f1

-rw- rw-r--+ 1 root root 0 sep 28 10:44f1

[root@centos7 data]#su mage

[root@centos7 data]$cat f1

[root@centos7 data]$ echo xx >> f1

[root@centos7 data]$ exit

Exit

[root@centos7 data]#useradd zhang

[ root@centos7 data]#su zhang

[ zhang@centos7 data]$ 11

total 4

- rw- rw-r--+ 1 root root 3 Sep 28 10:51 f1

[zhang@centos7 data]$ cat f1

XX

[zhang@centos7 data]$ echo xxx >> f1

bash: f1: Permission deni ed

[zhang@centos7 data] $ exit

exit

[ root@centos7 data]#11

total 4

- rw- rw-r--+ 1 root root 3 Sep 28 10:51 f1

[ root@centos7 data]#getfacl f1

# file: f1

# owner: root

# group: root

user: : rw-

user :wang:---

user :mage: rW-

group: :r—

mask: : rw-

other: : r—

[ root@centos7 data ]#usermod -aG webs zhang

[ root@centos7 data] #SU zhang

[ zhang@centos7 data]$ cat f1

XX

[ zhang@centos7 data]$ echo xX > f1

[ zhang@centos7 data]$ exit

Exit

[ root@centos7 data]#11

total 4

-rw- rw-r--+ 1 root root 6 sep 28 10:53 f1

[root@centos7 data]#id wang

uid=1000(wang) gid=1000(wang) groups=1000(wang)

[root@centos7 data]#usermod -aG webs wang

[root@centos7 data]#getfaclf1

#file: f1

#owner: root

# group: root

user: : rw-

user: wang : ---

user:mage : rw-

group: : r—

group : webs : rw-

mask : : rw-

other: : r—

 

4.生效顺序判断

[root@centos7 data]#su wang

[wang@centos7 data]$cat fi

cat: f1:Permission denied

[wang@centos7 data]$ echo >> f1

bash:f1:Permission denied

[wang@centos7 data]$ exit

exit

[root@centos7 data]#11 f1

-rw-rw-r--+ 1 root_root 6 sep 28 10:53 f1

[root@centos7 data]#chown wang f1

Xx

Xx

[wang@centos7data]$echo xxX>>f1

[wang@centos7 data]$ getfaclf1

#fiie:f1

#owner: wang

#group: root

user: : rw-

user : wang : ---,

user: mage : rw-

group : :r—

group : webs : rw-

mask : : rw-

other : : r—

[wang@centos7 data]$ exit

 

5.针对多个组设置权限

-rw-rw-r--+ 1 wang_root_10_sep 2810:55 f1

[root@centos7 data]#setfacl-mg :C

[root@centos7 data]#groupadd dbs

[root@centos7 dataj#setfac1-m g :dbs : w f1

[root@centos7 data]#setfacl -m g:webs :r f1

[root@centos7 data]#getfaclf1

#file:f1

#owner: wang

#group:root

user: : rw-

user: wang:---

user: mage : rw-

group: :r—

group : webs : r—

group : dbs :-w-

mask: : rw-

other: : r—

[root@centos7 data]#id zhang

uid=1002(zhang)gid=1003(zhang)groups=1003(zhang),1002(webs)

[root@centos7data]#11 f1

-rw-rw-r--+ 1 _wang root 10 sep 28 10:55f1

[zhang@centos7 data]$cat f1

Xx

Xx

Xxx

[zhang@centos7 data]$echo xxx>>f1

bash: f1:Permission denied

[zhang@centos7 data]$ exit

Exit

[root@centos7 data]#usermod -aG db2 zhang

usermod: group ' db2'does not exist

[root@centos7 data]#usermod -aG dbs zhang

[root@centos7 data]#id zhang

uid=1002(zhang)gid=1003(zhang)groups=1003(zhang),1002(webs),1004(dbs)

[root@centos7data]#su zhang_

zhana@centos7 data]$ getfa2lf1

#file: f1

#owner: wang

# group: root

user: : rw-

user : wang : ---

user: mage : rw-

group: : r—

other: : r—

[zhang@centos7 data]$.

 

6.ACL权限的删除

[root@centos7 data]#setfac1 -x u:wang f1

[root@centos7 data]#getfacf1

#file:f1

#owner: wang

# group:root

user: : rw-

group : webs : r—

group : dbs : -w-

mask: : rw-

other: : r—

 

删除组

[root@centos7 data]#setfacl -x g:webs f1

[root@centos7 data]#getfaclf1

#file:f1

#owner: wang

#group: root

user: : rw-

user:mage : rw-

group : :r—

group : dbs : -w-

mask: : rw-

other: : r—

 

7.chmod命令

[root@centos7~]#which chmod

/usr/bin/chmod

[root@centos7 ~]#11/usr/bin/chmod

-rwxr-xr-x. 1 root root 58584 Apr 1112:35 /usr/bin/chmod

[root@centos7 ~]#chmod -x/usr/bin/chmod

-rw-r--r--. 1 root_root 58584 Apr 11 12:35 /usr/bin/chmod

[root@centos7 ~]#11/ data

total4

drwxr-xr-x 2root root 26 sep 28 11:02 dir

-rw-r--r-- 1 wang root14 sep 2811:00f1

[root@centos7 ~]#chmod600 /data/f1

-bash:/usr/ bin/chmod:Permission denied

[root@centos7 ~]#chmod +x /usr/bin/chmod

-bash:/usr/bin/chmod:Permission denied

[root@centos7 ~]#chmod 600/data/f1

-bash:/usr/bin/chmod: Permission denied

[root@centos7 ~]#setfacl -m u:root: rwx /usr/bin/chmod

[root@centos7 ~]#getfac1 /usr/bin/chmod

getfacl: Removing leading '/ ' from absolute path names

#file: usr / bin/chmod

#owner:root

# group:root

user: : rw-

user : root : rwx

group : : r—

mask: : rwx

other : : r—

 

 

二、rwx命令


1.为多用户或者组的文件和目录赋予访问权限rwx

(1).mount -o acl /directory

(2).getfacl file |directory

(3).setfacl -m u:wang:rwx file|directory

(4).setfacl -Rm g:sales:rwX directory

(5).setfacl -M file.acl file|directory

(6).setfacl -m g:salesgroup:rw file|directory

(7).setfacl -m d:u:wang:rx directory

(8).setfacl -x u:wang file |directory.

(9).setfacl -X file.acl directory

 

2.setfacl -M file.acl file|directory

[root@centos7 ~]#cat > ac1.txt

u : wang : rwx

g : webs : rw^C

[root@centos7 ~]#cat ac1.txt

u : wang : rwx

g : webs : rw

[ root@centos7~]#11/ data/f1

-rw-r--r-- 1 wang root 14 sep 28 11:00/data/f1

[root@centos7 ~]#setfacl-Mac1.txt /data/f1

[root@centos7 ~]#getfacl /data/f1,

getfacl: Removing leading ' / ' from absolute path names

#file: data/f1

#owner: wang

#group : root

user: : rw-

user : wang : rwx

group : :r—

group : webs : rw-

mask : : rwx

other : : r—

 

3.删除权限

删除王账号

[rootcentos7 ~]#setfacl -x u : wang /data/f1

全部删除

[ root@centos7 ~]#cat > noacl.txt

u : wang

g: webs

^c

[root@centos7~]#cat noac1 .txt

u : wang

g: webs

[root@centos7 ~]#setfacl -X noacl.txt /data/f1

[root@centos7 ~]#getfacl/data/f1

getfacl : Removing leading ' / ' from absolute path names

 

3.setfacl -m d:u:wang:rx directory

[root@centos7~]#cd /data

[root@centos7 data]#11

total 4

drwxr-xr-x2root root 26 sep 28 11:02 dir

- rw-r--r--+ 1 wang root 14 sep 28 11:00 f1

[root@centos7 data]#setfac1 -R -mu:wang : rwx dir1

 

新建的文件

[root@centos7 data]#setfacl -R-m d:u:mage: rw dir

[root@centos7 data]#getfacl dir

#file: dir

#owner: root

#group:root

user: : rwx

user:wang : rwx

group: :r-x

mask: : rwx

other: : r-x

default: user: : rwx

default:user: mage : rw-

default: group: : r-x

defauTt: mask: : rwx

default:other: :r-x

 

 

.mask权限


1.概念

ACL文件上的group权限是mask值(自定义用户,自定义组,拥有组的最大权限),而非传统的组权限

getfacl可看到特殊权限:flags

通过ACL赋予目录默认x权限,目录内文件也不会继承x权限base ACL不能删除

setfacl -k dir 删除默认ACL权限

setfacl -b file1清除所有ACL权限

getfacl file1 | setfacl --set-file=- file2复制file1acl权限给file2

 

2.Mask

[root@centos7 dir]#setfacl -m u:wang : rw f1

[root@centos7 dir]#getfacl f1

#file:f1

#owner: root

#group: root

user : : rw-

user:wang : rw-

group : :r—

[root@centos7 dir]#11f1

-rw-rwr--+ 1 root root 595 sep 28 11:02 f1

[root@centos7 dir]#chomd o= f1

[root@centos7 dir]#11f1

-rw-rw--—-+ 1 root root 595 sep 28 11:02 f1

[root@centos7 dir]#getfaclf1

#file:f1

#owner: root#

group: root

user: : rw-

user:wang : rw-

group : :r—

mask : : rw-

other : :---

 

root@centos7 dir]#id mage

uid=1001(maae)qid=1001(mage)groups=1001(mage),1002(webs)

[root@centos7 dir]#usermod -G "" mage

[root@centos7 dir]#id mage

uid=1001(mage) gid=1001(mage) groups=1001(mage)

[root@centos7 dir]#11f1

rw-rw----+1 root root_595 sep 28 11:02 f1

[root@centos7 dir]#getfal f1

#file:f1

#owner: root#

group: root

user: : rw-

user:wang : rw-

group : :r—

mask : : rw-

other : :---

 

mask权限

[root@centos7 dir]#setfacl -m u : mage : rwx f1

[root@centos7 dir]#11f1

-rw- rwx-—-+ 1 root root 595 sep 28 11:02 f1

[root@centos7 dir]#getfacl f1

# file:f1

#owner:root#

group: root

user: : rw-

user: wang : rw-

user:mage : rwx

group: :r--

other::---

 

[ root@centos7 dir]#id mage

id-1001(maae) aid=1001(mage) groups=1001(mage) ,0(root)

[ root@centos7 dir]#

此时到底是root组权限生效,还是mage权限生效,此时能看到也能写进东西,说明此时是mage权限生效了。相当于所属者权限不起作用。

 

3.Mask的用法

由于wang用户,mage用户以及添加的新组权限都比较大,所以可以通过mask命令将其变小。

[root@centos7 dir]#setfacl -m g: webs : rwx f1

[root@centos7 dir]#getfacl f1

#file: f1

#owner: root

#group: root

user : : rw-

user:wang : rw-

user:mage : rwx

group: :r—

group : webs : rwx

mask : : rwx

other : :---

 

[root@centos7 dir]#setfacl -m mask : : r f1[root@centos7 dir]#getfacl f1

#file: f1

#owner: root

#group: root

user: : rw-  

user:wang : rw-                         #effective: r—

user:mage : rwx                          #effective: r—

group: :r—

group : webs : rwx入                     #effective:r—

mask: : r—

other : : ---

 

#effective: r—为限高线,调高限高线

[root@centos7 dir]#chmod g=rw f1

[root@centos7 dir]#getfac1f1

#file: f1

#owner: root

# group: roo

tuser: : rw-

user:wang : rw-

user:mage : rwx                       #effective : rw-

group : :r—

group : webs : rwx                    #effective : rw-

mask: :rw-

other : :---

 

4.getfacl file1 | setfacl --set-file=- file2复制file1acl权限给file2

[root@centos7 dir]#11f2

-rw-r--r-- 1 root_root 595 sep 28 11:02f2

[root@centos7 dir]#getfaclf1

[root@centos7 dir]#getfacl f1 >f1.acl

[root@centos7 dirj#cat f1.acl

[root@centos7 dir]#setfacl --set-file=f1.acl f2

[root@centos7 dirj#cat f1.acl

 

5.应用

mask只影响除所有者和other的之外的人和组的最大权限

Mask需要与用户的权限进行逻辑与运算后,才能变成有限的权限(EffectivePermission)

用户或组的设置必须存在于mask权限设定范围内才会生效   setfacl -m mask:rx file

--set选项会把原有的ACL项都删除,用新的替代,需要注意的是一定要包含UGO的设置,不能象-m一样只是添加ACL就可以

示例:setfacl --set u::rw,u:wang:rw,gr,o:-file1

 

6.--set选项

[root@centos7 dir]#setfacl --set u::r,g::0,0::-,u:zhang:rwf1

[root@centos7 dir]#getfacl f1

 

 

四、ACL备份和恢复


主要的文件操作命令cpmv都支持ACL,只是cp命令需要加上-p参数。但是tar等常见的备份工具是不会保留目录和文件的ACL信息

getfacl -R /tmp/dir1 > acl.txt

setfacl -Rrb /tmp/dir1

setfacl -R --set-file=acl.txt /tmp/dir1

setfacl --restore acl.txt

getfacl -R /tmp/dir1

 

1.ACL操作中遇到的问题

ACL权限丢失

[root@centos7 dir]#cp f1 f11

[root@centos7 dir]#getfaclf11

#fi1e: f11

#owner: root

#group: root

user: : r—

group: : r—

other: :---

 

2.解决

采用备份和还原ACL

[root@centos7 data]#getfacl -R dir > /root/dir.ac1

[root@centos7 dataj#setfacl-Rb dir

[root@centos7 dataj#getfacl -R

还原

[root@centos7 data]#getfacl --restore/root/dir.ac1

[root@centos7 dataj#getfacl dir

 

命令

Getfal

Setfacl

Mask

Chatter

Lsatter

相关实践学习
消息队列+Serverless+Tablestore:实现高弹性的电商订单系统
基于消息队列以及函数计算,快速部署一个高弹性的商品订单系统,能够应对抢购场景下的高并发情况。
云安全基础课 - 访问控制概述
课程大纲 课程目标和内容介绍视频时长 访问控制概述视频时长 身份标识和认证技术视频时长 授权机制视频时长 访问控制的常见攻击视频时长
相关文章
|
5天前
|
安全 Linux 数据库
|
3月前
|
安全 网络安全 数据安全/隐私保护
【专栏】IT 知识百科:访问控制列表(ACL)是网络安全的关键机制,用于定义和管理网络资源的访问权限
【4月更文挑战第28天】访问控制列表(ACL)是网络安全的关键机制,用于定义和管理网络资源的访问权限。ACL工作原理包括定义规则、匹配规则和执行操作。标准ACL基于源IP过滤,扩展ACL则提供更多筛选条件。时间及用户基础的ACL提供更细化的控制。优点在于增强安全性和精细管理,但管理复杂性和性能影响也是挑战。未来,ACL将趋向智能化和自动化,与更多安全技术结合,以提升网络安全。**
272 0
|
1月前
|
存储 Shell API
Casbin是一个强大的、开源的访问控制库,支持访问控制模型如ACL、RBAC、ABAC等。
Casbin是一个强大的、开源的访问控制库,支持访问控制模型如ACL、RBAC、ABAC等。
|
1月前
|
监控 安全 Java
Java中的权限管理与访问控制策略
Java中的权限管理与访问控制策略
|
2月前
|
网络协议 安全 数据安全/隐私保护
交换机访问控制列表(ACL)详解
交换机访问控制列表(ACL)详解
115 0
|
3月前
|
网络虚拟化 数据安全/隐私保护 数据中心
【专栏】对比了思科与华为网络设备的基本配置、接口、VLAN、路由、访问控制列表及其它关键命令
【4月更文挑战第28天】本文对比了思科与华为网络设备的基本配置、接口、VLAN、路由、访问控制列表及其它关键命令。尽管两者在很多操作上相似,如设备命名(思科:`hostname`,华为:`sysname`)、查看版本信息(思科:`show version`,华为:`display version`),但在某些方面存在差异,如接口速率设置(两者都使用`speed`和`duplex`,但命令结构略有不同)和VLAN配置(华为的`port hybrid`命令)。
316 0
|
3月前
|
网络协议 网络安全 网络性能优化
网络技术基础(14)——ACL访问控制列表
【3月更文挑战第3天】刚加完班又去南京出差了,实在是太忙了。。。。
|
3月前
|
数据库 数据安全/隐私保护
在阿里云中,访问控制(Resource Access Management,简称RAM)是权限管理系统,主要用于控制账号在阿里云中
在阿里云中,访问控制(Resource Access Management,简称RAM)是权限管理系统,主要用于控制账号在阿里云中
572 3
|
网络安全 数据安全/隐私保护
访问控制列表与SSH结合使用,为网络设备保驾护航,提高安全性
访问控制列表与SSH结合使用,为网络设备保驾护航,提高安全性
118 0
访问控制列表与SSH结合使用,为网络设备保驾护航,提高安全性
|
安全 关系型数据库 MySQL
MySQL安全与权限管理:保障数据安全与访问控制
本文深入探讨了MySQL数据库的安全与权限管理,通过详细的代码示例,介绍了用户与权限的概念,权限管理与访问控制的方法,以及数据库安全性策略的制定与实施。MySQL提供了强大的安全性功能,能够帮助管理员保护数据库的数据安全和限制用户的访问权限。了解如何创建用户、授予权限,以及如何制定数据库安全性策略,将使管理员能够有效地管理和保护数据库,降低潜在的安全风险。
804 0