目录

Linux提权管理

su命令

准备一个用户

sudo命令

sudo配置

Linux文件权限管理

文件系统权限介绍

rwx 权限解读

文件系统权限管理

chmod 命令

针对文件

针对目录

chown chgrp 命令

验证文件权限rwx效果

验证目录权限rwx效果

权限补充说明

管理文件默认权限

umask 命令

umask 持久化生效

管理文件特殊权限

SUID 针对文件

SGID 针对目录

sticky 针对目录

查找系统中所有特殊权限文件

管理文件扩展权限

管理文件访问控制列表

针对用户

针对组

mask 设置

针对目录的 acl

Linux提权管理

大多数时候Linux系统管理员以非特权用户身份登录系统,并使用工具暂时获得特权用户root管理系统。

su命令

  • su username启动一个非登录shell,使用当前的环境设置

  • su - username启动一个登录shell,设置了shell环境

  • username省略时代表切换到root用户

尽可能使用nologin shell登录

准备一个用户

useradd demisse1
#设置密码
echo 123456 |passwd --stdin demisse

grep demisse1 /etc/passwd

#以特定用户执行特定命令
su - demisse1 -c id
#加单引号
su -l demisse1 -c 'cat /etc/hosts'

sudo命令

从根本上说,Linux实现了一个非常粗糙的获得权限模型:root可以做任何事情,其他用户与系统相关什么也不能做。

  • su 缺点:

  • 用户必须知道root用户密码获取root用户所有权限。

  • 未记录用户执行命令。

  • 无法以/sbin/nologin的用户身份运行命令。

  • sudo优点:

  • sudo允许用户以其他用户身份执行特定命令。

  • sudo需要用户输入用户自己的密码,而非他们想访问的用户密码。

  • sudo执行的命令会记录在/var/log/secure文件中。

  • sudo语法:sudo [-u username] command

sudo id

#没有sudo权限的用户
[09:38:31 demisse1@rocky8-znf ~]$ sudo id

sudo配置

总结:在分配命令的时候,切记:只给用户特定功能的命令(例如用户管理相关命令),而不是通用功能的工具(例如vim)。

配置文件路径:

  • 主配置文件:/etc/sudoers,正常情况不要修改。

  • 从配置文件:/etc/sudoer.d/*,如果想添加配置,在此处添加。

Linux文件权限管理

文件系统权限介绍

  • Linux 文件权限简单灵活,易于理解和应用,能够处理大多数权限使用情况。

  • 文件有三个适用权限的用户类别:

  • 单个用户拥有者,通常是创建该文件的用户。

  • 单个组拥有者,通常是创建该文件的用户的主要组。

  • 除了用户拥有者和组拥有者之外的其他用户。

ls -l test

  • /etc/passwd为例,权限字符串-rw-r--r--分为四份:

  • 第一位代表文件类型,例如-代表普通文件,d代表目录,l(L 的小写)代表软链接等。

  • 第二到第四位,代表 user-owner(用户拥有者)具有的权限,也就是 demisse 用户具有的权限。

  • 第五到第七位,代表 group-owner(组拥有者)具有的权限,也就是 wheel 组中成员具有的权限。

  • 第八到第十位,代表 user-owner 和 group-owner 之外的用户具有的权限。

  • 权限优先级:如果文件的用户是 demisse,组成员中也有 demisse用户,那么 demisse获得的最终权限是用户拥有者的权限,而不是组中成员具有的权限。

rwx 权限解读

文件系统权限管理

chmod 命令

作用:更改文件不同ower权限。

语法1:chmod WhoHowWhat /path/to/file

  • Who: u(user) g(group) o(other) a(all)

  • How: +(添加) -(减去) =(精确设置)

  • What: r(read) w(write) x(excute) -(不具有权限)

针对文件
[root@rocky8 ~]# mkdir /lab
[root@rocky8 ~]# cd /lab
[root@rocky8 lab]# cp /etc/passwd .# 给user增加x权限
[root@rocky8 lab]# chmod u+x ./passwd
[root@rocky8 lab]# ls -l passwd 
-rwxr--r--. 1 root root 2312 11月  8 14:17 passwd# 一次性设置多个
[root@rocky8 lab]# chmod u-wx,g+w,o=- passwd 
[root@rocky8 lab]# ls -l passwd 
-r--rw----. 1 root root 2312 11月  8 14:17 passwd# 一次性设置所有对象
[root@rocky8 lab]# chmod a=rwx passwd
[root@rocky8 lab]# ls -l passwd 
-rwxrwxrwx. 1 root root 2312 11月  8 14:17 passwd
[root@rocky8 lab]# chmod a-wx passwd 
[root@rocky8 lab]# ls -l passwd 
-r--r--r--. 1 root root 2312 11月  8 14:17 passwd
针对目录
# 针对目录,准备目录和文件
[root@rocky8 lab]# mkdir dir01
[root@rocky8 lab]# touch dir01/file01
[root@rocky8 lab]# ls -ld dir01 dir01/file01 
drwxr-xr-x. 2 root root 20 11月  8 14:22 dir01
-rw-r--r--. 1 root root  0 11月  8 14:22 dir01/file01# 递归清除所有对象所有权限
[root@rocky8 lab]# chmod -R a=- dir01
[root@rocky8 lab]# ls -ld dir01 dir01/*
d---------. 2 root root 20 11月  8 14:22 dir01
----------. 1 root root  0 11月  8 14:22 dir01/file01# 递归设置user对象权限为rwx
[root@rocky8 lab]# chmod -R u+rwx dir01
[root@rocky8 lab]# ls -ld dir01 dir01/*
drwx------. 2 root root 20 11月  8 14:22 dir01
-rwx------. 1 root root  0 11月  8 14:22 dir01/file01

语法2: chmod ### /path/to/file

  • 第1个#,代表user权限

  • 第2个#,代表group权限

  • 第3个#,代表other权限

#,是一个数字范围是0(---)到7(rwx)。

# 示例1,文件权限为 -rw- r-- r--
# 用二进制表达权限为 110 100 100,对应10进制为644# 示例2,文件权限为 -rwx rw- r-x
# 用二进制表达权限为 111 110 101,对应10进制为765# 文件权限为634对应的权限
[root@rocky8 ~]# mkdir /lab;cd /lab
[root@rocky8 lab]# cp /etc/passwd .
[root@rocky8 lab]# chmod 634 passwd
[root@rocky8 lab]# ls -l passwd 
-rw--wxr--. 1 root root 2312 11月  8 14:17 passwd
[root@rocky8 lab]# stat -c %A passwd
-rw--wxr--
[root@rocky8 lab]# stat -c %a passwd
634# 文件权限为755对应的权限
[root@rocky8 lab]# chmod 755 passwd 
[root@rocky8 lab]# ls -l passwd 
-rwxr-xr-x. 1 root root 2312 11月  8 14:17 passwd
chown chgrp 命令

作用:更改文件属主。

[root@rocky8 lab]# ls -l passwd
-rwxr-xr-x. 1 root root 2312 11月  8 14:17 passwd# 修改user owner
[root@rocky8 lab]# chown demisse passwd
[root@rocky8 lab]# ls -l passwd
-rwxr-xr-x. 1 demisse root 2312 11月  8 14:17 passwd# 修改group owner
[root@rocky8 lab]# chgrp wheel passwd
[root@rocky8 lab]# ls -l passwd
-rwxr-xr-x. 1 demisse wheel 2312 11月  8 14:17 passwd# 同时修改 user和group owner
[root@rocky8 lab]# chown laowang:root passwd
[root@rocky8 lab]# ls -l passwd
-rwxr-xr-x. 1 laowang root 2312 11月  8 14:17 passwd# 对目录递归修改
[root@rocky8 lab]# ls -R -ld dir01 dir01/*
drwxrwx---. 2 root root 20 11月  8 14:22 dir01
-rwxrwx---. 1 root root  0 11月  8 14:22 dir01/file01# 对目录递归修改user owner
[root@rocky8 lab]# chown -R demisse dir01/
[root@rocky8 lab]# ls -R -ld dir01 dir01/*
drwxrwx---. 2 demisse root 20 11月  8 14:22 dir01
-rwxrwx---. 1 demisse root  0 11月  8 14:22 dir01/file01# 对目录递归同时修改user和group owner
[root@rocky8 lab]# chown -R laowang:wheel dir01/
[root@rocky8 lab]# ls -R -ld dir01 dir01/*
drwxrwx---. 2 laowang wheel 20 11月  8 14:22 dir01
-rwxrwx---. 1 laowang wheel  0 11月  8 14:22 dir01/file01

案例:准备一个普通用户家目录

模拟:创建一个用户tom,该用户没有自动创建家目录

[root@rocky8 ~]# useradd -M tom

准备用户家目录

[root@rocky8 ~]# cp -r /etc/skel/ /home/tom
[root@rocky8 ~]# ls -ld /home/tom
drwxr-xr-x. 3 root root 78 7月  22 11:52 /home/tom[root@rocky8 ~]# chmod u=rwx,go=- /home/tom
[root@rocky8 ~]# ls -ld /home/tom
drwx------. 3 root root 78 7月  22 11:52 /home/tom[root@rocky8 ~]# chown -R tom:tom /home/tom# 验证
[root@rocky8 ~]# su - tom
[tom@rocky8 ~]$ 
验证文件权限rwx效果
# 初始环境准备
[root@rocky8 ~]# mkdir /lab
[root@rocky8 lab]# cd /lab
[root@rocky8 lab]# cp /etc/hosts .
[root@rocky8 lab]# chmod o=- hosts
[root@rocky8 lab]# cat hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6# 验证
[demisse@rocky8 lab]$ ls -l hosts 
-rw-r-----. 1 root root 158 Nov  8 14:57 hosts
[demisse@rocky8 lab]$ cat hosts
cat: hosts: Permission denied
[demisse@rocky8 lab]$ echo hello world > hosts
-bash: hosts: Permission denied
[demisse@rocky8 lab]$ /lab/hosts
-bash: /lab/hosts: Permission denied# r权限验证--准备
[root@rocky8 lab]# chmod o=r hosts# r权限验证
[demisse@rocky8 lab]$ ls -l hosts 
-rw-r--r--. 1 root root 158 Nov  8 14:57 hosts
[demisse@rocky8 lab]$ cat hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6# w权限验证--准备
[root@rocky8 lab]# chmod o=w hosts# w权限验证
[demisse@rocky8 lab]$ ls -l hosts 
-rw-r---w-. 1 root root 158 Nov  8 14:57 hosts
[demisse@rocky8 lab]$ echo ni hao > hosts
[demisse@rocky8 lab]$ cat hosts
cat: hosts: Permission denied# 是否可以使用vim修改文件内容
[demisse@rocky8 lab]$ vim hosts
# 仍然无法读取文件内容,只能覆盖修改[demisse@rocky8 lab]$ echo hello world >> hosts
[root@rocky8 lab]# cat hosts
ni hao
hello world# x权限验证--准备
[root@rocky8 lab]# chmod o=x hosts
[root@rocky8 lab]# echo 'echo hello world' > mycommand
[root@rocky8 lab]# cat /lab/mycommand
echo hello world
[root@rocky8 lab]# chmod u+x mycommand
[root@rocky8 lab]# ls -l mycommand
-rwxr----x. 1 root root 17 11月  8 15:07 hosts
[root@rocky8 lab]# /lab/mycommand
hello world# x权限验证 
[demisse@rocky8 lab]$ /lab/mycommand 
bash: /lab/hosts: Permission denied
# 原因:无法读取文件代码
[root@rocky8 lab]# chmod o=rx mycommand
[demisse@rocky8 lab]$ /lab/mycommand 
hello world
验证目录权限rwx效果
# 初始环境准备
[root@rocky8 lab]# mkdir dir01
[root@rocky8 lab]# mv hosts dir01
[root@rocky8 lab]# chown -R root:root dir01/
[root@rocky8 lab]# chmod -R a=- dir01
[root@rocky8 lab]# chmod o=r dir01/hosts
[root@rocky8 lab]# ls -ld dir01 dir01/*
d---------. 2 root root 19 11月  8 15:29 dir01
-------r--. 1 root root 17 11月  8 15:07 dir01/hosts# 验证
[demisse@rocky8 lab]$ ls dir01/
ls: cannot open directory dir01/: Permission denied
[demisse@rocky8 lab]$ cd dir01/
-bash: cd: dir01/: Permission denied
[demisse@rocky8 lab]$ touch dir01/file01
touch: cannot touch 'dir01/file01': Permission denied# r权限验证--准备
[root@rocky8 lab]# chmod o=r dir01/# r权限验证
[demisse@rocky8 lab]$ ls dir01/
hosts
[demisse@rocky8 lab]$ ls -l dir01/
ls: cannot access dir01/hosts: Permission denied
total 0
-????????? ? ? ? ?            ? hosts# x权限验证--准备
[root@rocky8 lab]# ls -ld dir01 dir01/*
d--------x. 2 root root 19 11月  8 15:29 dir01
-------r--. 1 root root 17 11月  8 15:07 dir01/hosts# x权限验证
[demisse@rocky8 lab]$ cat dir01/hosts
echo hello world
[demisse@rocky8 lab]$ cd dir01/
[demisse@rocky8 dir01]$ ls
ls: cannot open directory .: Permission denied
[demisse@rocky8 dir01]$ cat hosts
echo hello world# w权限验证--准备
[root@rocky8 lab]# chmod o=w dir01/
[root@rocky8 lab]# ls -ld dir01 dir01/*
d-------w-. 2 root root 19 11月  8 15:29 dir01
-------r--. 1 root root 17 11月  8 15:07 dir01/hosts# w权限验证
[demisse@rocky8 lab]$ touch dir01/file01
touch: cannot touch 'dir01/file01': Permission denied
[demisse@rocky8 lab]$ rm dir01/hosts
rm: cannot remove 'dir01/hosts': Permission denied# 追加x权限
[root@rocky8 lab]# chmod o=wx dir01/
[root@rocky8 lab]# ls -ld dir01 dir01/*
d-------wx. 2 root root 19 11月  8 15:29 dir01
-------r--. 1 root root 17 11月  8 15:07 dir01/hosts# 体会wx效果
[demisse@rocky8 lab]$ cat dir01/hosts
echo hello world
[demisse@rocky8 lab]$ touch dir01/file01
[demisse@rocky8 lab]$ rm dir01/hosts 
rm: remove write-protected regular file 'dir01/hosts'? yes
[root@rocky8 lab]# ls -ld dir01 dir01/*
d-------wx. 2 root  root  20 11月  8 15:41 dir01
-rw-r--r--. 1 demisse demisse  0 11月  8 15:41 dir01/file01
权限补充说明
  • 对于文件来说:

  • 赋予 w 权限的时候,也会赋予 r 权限。

  • 赋予 x 权限的时候,也会赋予 r 权限。

  • 对于目录来说:

  • 赋予 r 权限的时候,也会赋予 x 权限。

  • 赋予 w 权限的时候,也会赋予 rx 权限。

管理文件默认权限

umask 命令

设置文件默认要取消的权限。

# 默认情况
[demisse@rocky8 ~]$ mkdir lab;cd lab
[demisse@rocky8 lab]$ touch f1;mkdir d1
[demisse@rocky8 lab]$ ls -l
total 0
drwxr-xr-x. 2 demisse demisse 6 Nov  8 17:05 d1
-rw-r--r--. 1 demisse demisse 0 Nov  8 17:05 f1# umask值中权限是要剔除掉的
[demisse@rocky8 lab]$ umask 
0022
# 设置为0
[demisse@rocky8 lab]$ umask 0
[demisse@rocky8 lab]$ umask 
0000# 再次创建文件
[demisse@rocky8 lab]$ touch f2;mkdir d2
[demisse@rocky8 lab]$ ls -ld *2
drwxrwxrwx. 2 demisse demisse 6 Nov  8 17:07 d2
-rw-rw-rw-. 1 demisse demisse 0 Nov  8 17:07 f2# 此时目录的权限是777,文件的权限是666# 根据用户需求定制umask值,例如希望group和other位置不具有权限
[demisse@rocky8 lab]$ umask 077
[demisse@rocky8 lab]$ umask 
0077[demisse@rocky8 lab]$ touch f3;mkdir d3
[demisse@rocky8 lab]$ ls -ld *3
drwx------. 2 demisse demisse 6 Nov  8 17:10 d3
-rw-------. 1 demisse demisse 0 Nov  8 17:10 f3
umask 持久化生效
# 针对单个用户
[demisse@rocky8 lab]$ echo 'umask 077' >> ~/.bashrc# 针对所有用户
[root@rocky8 ~]# echo 'umask 077' >> /etc/bashrc

管理文件特殊权限

命令对文件能执行哪些操作,取决于执行者。

SUID 针对文件
# 普通用户执行passwd命令可以修改/etc/shadow文件原因
[demisse@rocky8 ~]$ passwd
Changing password for user demisse.
Changing password for demisse.
(current) UNIX password: 
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.
[demisse@rocky8 ~]$ ls -l /etc/shadow
----------. 1 root root 1264 Nov  8 16:38 /etc/shadow# 查看passwd程序权限
[demisse@rocky8 ~]$ ls -l $(which passwd)
-rwsr-xr-x. 1 root root 27856 Apr  1  2020 /usr/bin/passwd# 普通用户执行passwd的命令时候,有效身份是root用户, root用户是可以修改shadow文件内容。# suid应用
[root@rocky8 ~]# chmod u+s /usr/bin/vim
[root@rocky8 ~]# ls -l /usr/bin/vim
-rwsr-xr-x. 1 root root 2337216 10月 14 2020 /usr/bin/vim# 添加suid权限
[root@rocky8 ~]# chmod u+s /usr/bin/vim
[root@rocky8 ~]# ls -l /usr/bin/vim
-rwsr-xr-x. 1 root root 2337216 10月 14 2020 /usr/bin/vim
# 此时普通用户就可以修改任意文件
[demisse@rocky8 ~]$ vim /etc/passwd# 删除suid权限
[root@rocky8 ~]# chmod u-s /usr/bin/vim
SGID 针对目录
# 准备用户和组
[root@rocky8 lab]# groupadd devops
[root@rocky8 lab]# useradd -G devops dev1
[root@rocky8 lab]# useradd -G devops dev2# 准备目录
[root@rocky8 lab]# mkdir webapp
[root@rocky8 lab]# chgrp devops webapp
[root@rocky8 lab]# chmod g=rwx webapp/
# 准备默认权限
[root@rocky8 lab]# echo "umask 002" >> /etc/bashrc# 实验一:普通用户创建文件,只有自己可以编辑
[root@rocky8 lab]# su dev1
[dev1@rocky8 lab]$ touch webapp/dev-f1
[dev1@rocky8 lab]$ ll webapp/dev-f1
-rw-rw-r--. 1 dev1 dev1 0 7月  22 15:12 webapp/dev-f1# 实验二:普通用户创建文件,组中成员也可以编辑
[root@rocky8 lab]# chmod g+s webapp[root@rocky8 lab]# su dev1
[dev1@rocky8 lab]$ touch webapp/dev-f2
[dev1@rocky8 lab]$ ll webapp
总用量 0
-rw-rw-r--. 1 dev1 dev1   0 7月  22 15:12 dev-f1
-rw-rw-r--. 1 dev1 devops 0 7月  22 15:13 dev-f2[root@rocky8 lab]# su dev2
[dev2@rocky8 lab]$ echo hello world >> webapp/dev-f2
[dev2@rocky8 lab]$ cat webapp/dev-f2
hello world
sticky 针对目录
# 示例文件
[root@rocky8 lab]# ls -ld /tmp
drwxrwxrwt. 20 root root 4096 11月  8 16:50 /tmp
[root@rocky8 lab]# stat -c %a /tmp
1777
[demisse@rocky8 ~]$ rm /tmp/storage.log 
rm: remove write-protected regular empty file '/tmp/storage.log'? yes
rm: cannot remove '/tmp/storage.log': Operation not permitted# 用户只能删除自己创建的文件
[demisse@rocky8 ~]$ touch /tmp/demisse-f1
[demisse@rocky8 ~]$ ls /tmp/demisse-f1
/tmp/demisse-f1
[demisse@rocky8 ~]$ rm /tmp/demisse-f1
查找系统中所有特殊权限文件
# 查找系统中所有具有suid权限的文件
[root@rocky8 ~]# find / -perm -4000
# 或者
[root@rocky8 ~]# find / -perm -u+s

管理文件扩展权限

需求:创建一个文件,root用户也无法编辑和删除?

解答:文件扩展属性。

[demisse@rocky8 lab]$ chattr --help
Usage: chattr [-pRVf] [-+=aAcCdDeijPsStTuF] [-v version] files...

两个常用属性:

  • append only (a),只能追加文件内容。

  • immutable (i),不可变更属性。

append only

[root@rocky8 ~]# touch /opt/operator.log
[root@rocky8 ~]# chattr +a /opt/operator.log[root@rocky8 ~]# echo hello world > /opt/operator.log
-bash: /opt/operator.log: 不允许的操作[root@rocky8 ~]# echo hello world 1 >> /opt/operator.log
[root@rocky8 ~]# echo hello world 2 >> /opt/operator.log[root@rocky8 ~]# rm -f /opt/operator.log
rm: 无法删除'/opt/operator.log': 不允许的操作

immutable 属性

[root@rocky8 ~]# cp /etc/passwd ./passwd[root@rocky8 ~]# chattr +i passwd 
[root@rocky8 ~]# echo 'lw:x:1000:1000:lw:/home/lw:/bin/bash' >> passwd 
-bash: passwd: 不允许的操作
[root@rocky8 ~]# rm -f passwd 
rm: 无法删除'passwd': 不允许的操作[root@rocky8 ~]# chattr -i passwd 
[root@rocky8 ~]# echo 'lw:x:1000:1000:lw:/home/lw:/bin/bash' >> passwd# 重要的文件,内容改完后,再把i属性加回去。
[root@rocky8 ~]# chattr +i passwd 

管理文件访问控制列表

需求:如何给不同的用户赋予不同的权限?

解答:访问控制列表。

针对用户
# 准备文件
[root@rocky8 lab]# cp /etc/passwd ./passwd
[root@rocky8 lab]# chmod o=- passwd 
[root@rocky8 lab]# ll passwd 
-rw-r-----. 1 root root 2539 7月  22 16:36 passwd# 赋予demisse读取权限
[root@rocky8 lab]# setfacl -m u:demisse:rw passwd# 此时 group 位置对应的权限是mask权限,也就是特定用户、所有组和other用户能够获得的最大权限。
[root@rocky8 lab]# ls -l passwd 
-rw-rw----+ 1 root root 2539 7月  22 16:36 passwd
[root@rocky8 lab]# getfacl passwd 
# file: passwd
# owner: root
# group: root
user::rw-
user:demisse:rw-
group::r--
mask::rw-
other::---# 验证
[demisse@rocky8 ~]$ ll /lab/passwd 
-rw-r-----+ 1 root root 2539 7月  22 16:36 /lab/passwd
[demisse@rocky8 ~]$ head -n 1 /lab/passwd
root:x:0:0:root:/root:/bin/bash# 同时设置多个规则,参照如下
[root@rocky8 lab]# setfacl -m u:tom:rwx,u:demisse:r passwd 
针对组
[root@rocky8 lab]# setfacl -m g:wheel:rwx passwd# 此时 mask 值变为 rwx
[root@rocky8 lab]# ls -l passwd 
-rw-rwx---+ 1 root root 2539 7月  22 16:36 passwd
[root@rocky8 lab]# getfacl passwd 
# file: passwd
# owner: root
# group: root
user::rw-
user:demisse:rw-
group::r--
group:wheel:rwx
mask::rwx
other::---
mask 设置

为了防止权限失控,最后一步设置相关用户的最大权限。

[root@rocky8 lab]# setfacl -m m:- passwd[root@rocky8 lab]# ls -l passwd 
-rw-------+ 1 root root 2539 7月  22 16:36 passwd
[root@rocky8 lab]# getfacl passwd 
# file: passwd
# owner: root
# group: root
user::rw-
user:demisse:rw-                  #effective:---
group::r--                      #effective:---
group:wheel:rwx                 #effective:---
mask::---
other::---
针对目录的 acl

在具有默认acl规则的目录中创建文件,文件会继承目录的默认acl。

[root@rocky8 lab]# mkdir test
[root@rocky8 lab]# setfacl -m u:demisse:rw test
[root@rocky8 lab]# ls -ld test
drwxrwxr-x+ 2 root root 6 7月  22 16:47 test[root@rocky8 lab]# touch test/f1
[root@rocky8 lab]# ls -l test/f1
-rw-r--r--. 1 root root 0 7月  22 16:47 test/f1# 设置目录默认 acl
[root@rocky8 lab]# setfacl -m d:u:demisse:rw test
[root@rocky8 lab]# getfacl test/
# file: test/
# owner: root
# group: root
user::rwx
user:demisse:rw-
group::r-x
mask::rwx
other::r-x
default:user::rwx
default:user:demisse:rw-
default:group::r-x
default:mask::rwx
default:other::r-x[root@rocky8 lab]# touch test/f2
[root@rocky8 lab]# ls -l test/f2
-rw-rw-r--+ 1 root root 0 7月  22 16:48 test/f2
[root@rocky8 lab]# getfacl test/f2
# file: test/f2
# owner: root
# group: root
user::rw-
user:demisse:rw-
group::r-x                      #effective:r--
mask::rw-
other::r--

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/919009.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/919009.shtml
英文地址,请注明出处:http://en.pswp.cn/news/919009.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kubernetes(2)pod的管理及优化

【一】Kubernetes 资源管理与操作方式 1.1 资源管理介绍 Kubernetes 把一切抽象为“资源”,用户通过操作资源来管理集群。 集群中运行服务 运行容器,而容器必须放在 Pod 内。 最小管理单元是 Pod,但通常不直接操作 Pod,而是借…

深入剖析 TOTP 算法:基于时间的一次性密码生成机制

标准原文:https://datatracker.ietf.org/doc/html/rfc6238 在数字化时代,信息安全至关重要,身份验证成为保障系统和数据安全的第一道防线。传统的用户名加密码方式已难以应对日益复杂的安全挑战,基于时间的一次性密码(…

Centos7 服务管理

注:从Centos7开始systemd代替了init,使用systemd机制来管理服务优势:并行处理所有服务,加速开机流程命令相对简单:所有操作均有systemctl命令来执行服务依赖性检测:systemctl命令启动服务时会自动启动依赖服…

数据库索引视角:对比二叉树到红黑树再到B树

当我们谈论数据库索引时,选择合适的数据结构至关重要。不同的数据结构在性能、复杂度以及适用场景上都有所不同。本文将通过对比二叉树、红黑树和B树,探讨它们如何影响数据库索引的表现。一、二叉树特性定义:每个节点最多有两个子节点。应用场…

Redis-plus-plus 安装指南

🍑个人主页:Jupiter.🚀 所属专栏:Redis 欢迎大家点赞收藏评论😊目录1.安装 hiredis2.下载 redis-plus-plus 源码3.编译/安装 redis-plus-plusC 操作 redis 的库有很多. 此处使⽤ redis-plus-plus.这个库的功能强⼤, 使…

vue3动态的控制表格列的展示简单例子

动态的控制表格列的展示&#xff0c; 可以勾选和取消某一列的显示本地存储上一次的配置表格内容支持通过slot自定义内容例子1 <script setup> import { reactive, ref, watch } from "vue"; import one from "./components/one.vue"; import One fro…

微积分[4]|高等数学发展简史(两万字长文)

文章目录前言解析几何学微积分学级数理论常微分方程&#xff5c;(1) 萌芽阶段&#xff5c;(2) 初创阶段&#xff5c;(3) 奠基阶段&#xff5c;(4) 现代发展阶段前言 高等数学通常仅是相对初等数学而言的&#xff0c;其内容并无身份确切的所指&#xff0c;大凡初等数学以外的数…

系统思考—啤酒游戏经营决策沙盘认证

下周&#xff0c;我们将为企业交付——《啤酒游戏经营决策沙盘—应对动态复杂系统的思考智慧》内部讲师认证课。啤酒游戏沙盘&#xff0c;我已交付过上百场。但这次的讲师认证班&#xff0c;不仅仅是分享课程技巧&#xff0c;更多的是分享“心法”。有些关键点&#xff0c;直到…

深入详解PCB布局布线技巧-去耦电容的摆放位置

目录 一、基础概念与核心作用 二、布局五大黄金原则 三、模拟电路的特殊处理 四、高频场景优化方案 和旁路电容是保障电源稳定性和信号完整性的核心元件。尽管它们的原理和作用常被讨论,但实际布局中的细节往往决定成败。 一、基础概念与核心作用 去耦电容:主要用于抑制…

布隆过滤器的原理及使用

背景介绍在互联网中&#xff0c;我们经常遇到需要在大量数据中判断目标数据是否存在的情况。例如&#xff0c;在网络爬虫中&#xff0c;我们需要判断某个网址是否已经被访问过。为了实现这一功能&#xff0c;通常需要使用一个容器来存储已访问过的网址。如果将这些数据直接存储…

达梦 vs. Oracle :架构篇①——从“联邦制”到“中央集权”

1. 引言&#xff1a;为何体系结构是第一课&#xff1f; 对于任何一个数据库而言&#xff0c;其体系结构是决定其性格、性能和应用场景的“基因”。理解了体系结构&#xff0c;尤其是在两种数据库之间进行切换时&#xff0c;才能真正做到知其然&#xff0c;并知其所以然。在所有…

我的世界Java版1.21.4的Fabric模组开发教程(十九)自定义生物群系

这是适用于Minecraft Java版1.21.4的Fabric模组开发系列教程专栏第十九章——自定义生物群系。想要阅读其他内容&#xff0c;请查看或订阅上面的专栏。 生物群系(Biome) 是Minecraft中世界不同区域呈现特定的地貌景观&#xff0c;这些区域与现实世界类似&#xff0c;都具有和其…

Mac (三)如何设置环境变量

目录一、查看环境变量 &#x1f50d;1. 查看所有环境变量2. 查看特定变量二、临时设置&#xff08;当前终端有效&#xff09; ⚡1. 基本语法2. 实战示例三、永久设置&#xff08;全局生效&#xff09; &#x1f512;配置步骤&#xff1a;四、实战案例 &#x1f6e0;️案例1&…

零改造迁移实录:2000+存储过程从SQL Server滑入KingbaseES V9R4C12的72小时

摘要&#xff1a;在信创窗口期&#xff0c;我们把拥有2000存储过程、300链接服务器的核心业务&#xff0c;从 SQL Server 2016/2019 平移到 KingbaseES V9R4C12&#xff08;SQL Server 兼容版&#xff09;。本文以 30 分钟部署、TPCH 100G 性能 PK、真实踩坑修复、灰度割接 4 小…

K8S HPA 弹性水平扩缩容 Pod 详解

文章目录1、前置准备2、需求场景3、Scale 静态扩缩容3.1、创建 Deployment 脚本3.2、Scale 扩缩容3、HPA 自动扩缩容3.1、安装 Metrics3.2、创建 Deployment 演示案例3.3、创建 HPA3.4、触发 HPA 自动扩缩容1、前置准备 本次案例演示&#xff0c;我选择了阿里云ECS&#xff08…

对话访谈|盘古信息×智晟威:深度挖掘数字化转型的奥秘

在数字化转型的浪潮中&#xff0c;传统设备企业如何突破“纯硬件”的边界&#xff0c;实现从“卖产品”到“卖生态”的跨越&#xff1f;数字化转型究竟是“高不可攀的奢侈品”&#xff0c;还是“触手可及的生存技能”&#xff1f;近日&#xff0c;广东盘古信息科技股份有限公司…

什么是模型预测控制?

一、概念模型预测控制&#xff08;Model Predictive Control, MPC&#xff09;是一种先进的控制方法&#xff0c;广泛应用于工业过程控制、机器人控制、自动驾驶等领域。MPC的核心思想是利用系统的动态模型预测未来的行为&#xff0c;并通过优化算法计算出当前时刻的最优控制输…

类与类加载器

在Java中&#xff0c;类和类加载器是密切相关的两个概念&#xff0c;理解它们有助于我们更好地掌握Java的运行机制。什么是Java类&#xff1f;Java类就像是一个模板或蓝图&#xff0c;它定义了对象的属性和行为。比如"汽车"可以看作一个类&#xff0c;它有颜色、品牌…

一文速通Python并行计算:14 Python异步编程-协程的管理和调度

一文速通 Python 并行计算&#xff1a;14 Python 异步编程-协程的管理和调度 摘要&#xff1a; Python 异步编程基于 async/await 构建协程&#xff0c;运行在事件循环中。协程生成 Task&#xff0c;遇到 await 时挂起&#xff0c;I/O 完成触发回调恢复运行&#xff0c;通过…

Node.js面试题及详细答案120题(16-30) -- 核心模块篇

《前后端面试题》专栏集合了前后端各个知识模块的面试题&#xff0c;包括html&#xff0c;javascript&#xff0c;css&#xff0c;vue&#xff0c;react&#xff0c;java&#xff0c;Openlayers&#xff0c;leaflet&#xff0c;cesium&#xff0c;mapboxGL&#xff0c;threejs&…