ACL权限管理解析

基础权限

1.普通文件权限
r:读取查看文件内的内容(字符/字符串/乱码)
w:编辑修改文件的内容
x:是否允许文件的执行(命令/脚本)

2.目录权限
r:列出目录的文件列表(ll查看)
w:是否有能在该目录下创建/删除-文件/目录
x:是否可以进入该目录中(cd)

3.umask:默认权限掩码值

/etc/profile 该文件内的判断决定了哪类用户用0022掩码,哪一类用0002掩码。

if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ] 
	then
		umask 002
	else
		umask 022
	fi
	用最大权限位  减去  对应掩码值 即可获得默认权限
	目录:777		文件:666
        -0022			-0022
          755			  644

4.chmod和chown详解

ACL权限

ACL(Access Control Lists)访问控制列表

1.适用于第四方(除我方属主,属组,其他人以外的单一用户或组)在特殊情况下,基础权限满足不了,所以需要给第四方开设ACL权限

2.ACL权限是文件系统上所持有的一种功能,默认情况下ext4、xfs都支持,不需要手动开启

3.假若ACL权限没有开启,需要手动开启ACL权限,
命令格式:mount -o remount,acl 分区名或挂载目录(不能对xfs文件系统设置,不要再CentOS 7.x中使用)

管理命令

ACL权限管理命令

1.查看ACL权限
getfacl 文件或目录
2.设置ACL权限
setfacl [选项] 【u/g】:username:【rwx】 文件或目录
选项:
-m :为指定用户、组添加ACL权限
-x :删除指定用户、组的ACL权限
-b :清空指定文件上的所有ACL权限
-R :对目录设置ACL权限时,一并将ACL权限递归到所有已存在的子文件上
-d :对目录设置默认ACL权限,该权限不对目录生效,仅对在目录下新建的子文件生效(继承权限)
注意:在具有默认ACL权限的目录下创建新目录时,新目录不仅继承ACL权限,还会继承默认权限

实操

1.为用户/组添加ACL权限

[root@lianxi 2002]# ll
total 0
-rw-r--r--. 1 root root 0 Apr 21 06:48 1.txt
-rw-r--r--. 1 root root 0 Apr 21 06:48 2.txt
-rw-r--r--. 1 root root 0 Apr 21 06:48 3.txt
drwxr-xr-x. 2 root root 6 Apr 21 06:49 e
drwxr-xr-x. 2 root root 6 Apr 21 06:49 q
drwxr-xr-x. 2 root root 6 Apr 21 06:49 w
[root@lianxi 2002]# useradd dongx   创建用户
[root@lianxi 2002]# passwd dongx    给用户设置密码
Changing password for user dongx.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.
[root@lianxi 2002]# setfacl -m u:dongx:rwx /2002/q  给权限
[root@lianxi 2002]# ll       查看
total 0
-rw-r--r--. 1 root root 0 Apr 21 06:48 1.txt
-rw-r--r--. 1 root root 0 Apr 21 06:48 2.txt
-rw-r--r--. 1 root root 0 Apr 21 06:48 3.txt
drwxr-xr-x. 2 root root 6 Apr 21 06:49 e
drwxrwxr-x+ 2 root root 6 Apr 21 06:49 q      发生了变化
drwxr-xr-x. 2 root root 6 Apr 21 06:49 w
[root@lianxi 2002]# getfacl q    查看权限
# file: q
# owner: root
# group: root
user::rwx
user:dongx:rwx     实现了
group::r-x
mask::rwx
other::r-x
[root@lianxi 2002]# groupadd qyy   创建一个组
[root@lianxi 2002]# setfacl -m g:qyy:rwx /2002/q   给权限
[root@lianxi 2002]# getfacl q   查看
# file: q
# owner: root
# group: root
user::rwx
user:dongx:rwx
group::r-x
group:qyy:rwx    有了权限
mask::rwx
other::r-x

2.清空/删除指定用户/组的ACL权限

[root@lianxi 2002]# setfacl -x u:dongx /2002/q  删除整条权限
[root@lianxi 2002]# getfacl q
# file: q 
# owner: root
# group: root
user::rwx
group::r-x      上下图结合看一下差别,可以实操一下
group:qyy:rwx
mask::rwx
other::r-x

[root@lianxi 2002]# setfacl -m u:dongx:rwx /2002/w  先给权限
[root@lianxi 2002]# getfacl w   查看
# file: w
# owner: root
# group: root
user::rwx
user:dongx:rwx
group::r-x
mask::rwx
other::r-x
[root@lianxi 2002]# setfacl -b w  清空权限
[root@lianxi 2002]# getfacl w
# file: w
# owner: root
# group: root
user::rwx      清空了所有权限
group::r-x
other::r-x

3.对目录设置ACL权限时,一并将ACL权限递归到所有已存在的子文件上

[root@lianxi 2002]# ll
total 0
-rw-r--r--. 1 root root 0 Apr 21 06:48 1.txt
-rw-r--r--. 1 root root 0 Apr 21 06:48 2.txt
-rw-r--r--. 1 root root 0 Apr 21 06:48 3.txt
drwxr-xr-x. 2 root root 6 Apr 21 06:49 e
drwxrwxr-x+ 2 root root 6 Apr 21 06:49 q
drwxr-xr-x. 2 root root 6 Apr 21 06:49 w
[root@lianxi 2002]# cd /e   在e里面创建目录
-bash: cd: /e: No such file or directory
[root@lianxi 2002]# cd e
[root@lianxi e]# mkdir a s d f
[root@lianxi e]# cd -
/2002
[root@lianxi 2002]# setfacl -R -m u:dongx:rwx /2002/e  使e目录下的子目录有权限
[root@lianxi 2002]# ll e
total 0
drwxrwxr-x+ 2 root root 6 Apr 21 07:05 a
drwxrwxr-x+ 2 root root 6 Apr 21 07:05 d
drwxrwxr-x+ 2 root root 6 Apr 21 07:05 f
drwxrwxr-x+ 2 root root 6 Apr 21 07:05 s

4.对目录设置默认ACL权限,该权限不对目录生效,仅对在目录下新建的子文件生效

[root@lianxi 2002]# setfacl -m d:u:dongx:rwx /2002/w
[root@lianxi 2002]# setfacl -m u:dongx:rwx /2002/w
[root@lianxi 2002]# su - dongx 
Last login: Tue Apr 21 07:14:40 EDT 2020 on pts/0
[dongx@lianxi ~]$ cd /2002/w
[dongx@lianxi w]$ mkdir 7 8 9
[dongx@lianxi w]$ exit
logout
[root@lianxi 2002]# cd w
[root@lianxi w]# ll
total 0
drwxrwxr-x+ 2 dongx dongx 6 Apr 21 07:45 7
drwxrwxr-x+ 2 dongx dongx 6 Apr 21 07:45 8  新创建的也有权限
drwxrwxr-x+ 2 dongx dongx 6 Apr 21 07:45 9

你可能感兴趣的:(Linux基础)