基础权限
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
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