[Linux] Linux提權管理 文件權限管理

目錄

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&…