开发者学堂课程【Linux用户和组管理:ACL(访问控制列表)权限管理】学习笔记,与课程紧密联系,让用户快速学习知识.
课程地址:https://developer.aliyun.com/learning/course/580/detail/7997
ACL(访问控制列表)权限管理
内容介绍
一.ACL权限
二.rwx权限
三.mask权限
四.ACL备份和恢复
一.ACL权限
传统权限是根据所有者,所属者和其它人这三种进行设置的,这时存在缺陷,当在一个文件中设置权限时,只能根据这三种人进行设置。权限位有九个位,前三个所有者,中间所属者,最后三个时其它人。这种设置方法导致设置非常不灵活。
1.ACL概念
(1).ACL:Access Control List, 实现灵活的权限管理
(2).除了文件的所有者,所属者和其它人,可以对更多的用户设置权限
(3).CentOS7默认创建的 xfs 和 ext 文件系统具有ACL功能
(4).CentOS7之前版本,默认手工创建的ext文件系统无ACL功能,需手动增加
Tune2fs -o acl /dev/sdb1
Mount -oacl /dev/sdb1 /mnt/test
(5).ACL生效顺序:所有者,自定义用户,自定义组,其他人
(6).访问控制列表可以实现灵活的权限管理,打破传统权限只能针对三种人设置权限的局限,可以加任何希望指定的用户和所有者。
(6).使用ACL之前要确认当前的文件系统支持ACL
2.确定文件系统
[root
@
c
entos6 ~
]
#df -T
/
dev/sda3 ext4
[root
@
c
entos7 ~
]
#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
dat
a
]
$
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]$.
7.ACL权限的删除
[root@centos7 data]#setfac1 -x u:wang f1
[root@centos7 data]#getfacf1
#fi
l
e: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—
8.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
#fi
l
e: 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.t
x
t
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