Linux基礎之許可權管理

smileleooo發表於2024-04-29

目錄
  • 通用許可權的管理
  • 擴充套件許可權的管理
  • 特殊許可權的管理
  • 許可權掩碼

在Linux中,許可權管理是透過檔案系統中的許可權位來實現的。

通用許可權的管理

每個檔案或目錄都有一個所有者、一個使用者組和其他使用者的許可權設定。主要的許可權包括讀取、寫入和執行。

檔案許可權包括讀、寫和執行許可權:

  • 讀許可權(r):允許使用者讀取檔案的內容或列出目錄的內容

  • 寫許可權(w):允許使用者修改檔案的內容或在目錄中建立、刪除和重新命名檔案

  • 執行許可權(x):允許使用者執行檔案,或允許使用者進入目錄

檔案許可權共有九個位,分為三組,每組三個位,分別為:

  • 所有者許可權:指定檔案所有者的許可權

  • 所屬組許可權:指定檔案所屬組的許可權

  • 其他使用者許可權:指定除所有者和所屬組以外的其他使用者的許可權

數字許可權表示法

---		000		0
--x		001		1
-w-		010		2
-wx		011		3
r--		100		4
r-x		101		5
rw-		110		6
rwx		111		7

三位二進位制所對應的10進位制數。

修改許可權chmod

  1. 使用數字許可權表示法:
chmod 755 filename

# 將檔案的許可權設定為755

即所有者具有讀、寫、執行許可權,組使用者和其他使用者只有讀和執行許可權。

  1. 使用符號許可權表示法:

使用 u g o a 分別代表 user group other all

使用 + - = 進行許可權賦值

比如:

chmod u+x filename

# 將檔案的所有者許可權設定為可執行
chmod g-r filename

# 將檔案的組使用者許可權設定為不可讀
chmod o=rwx filename

# 將檔案的其他使用者許可權設定為讀、寫、執行

擴充套件許可權的管理

FACL (File Access Control List) 檔案訪問控制列表,更細粒度地管理檔案和目錄的許可權。

ACL 許可權分配:給指定的使用者指定目錄分配指定的許可權

當設定擴充套件許可權之後 . 會變成 +

setfacl 設定ACL許可權
    -m 新增擴充套件許可權	u:使用者名稱 g:使用者組名:許可權字(rwx) 檔名
    -x 取消擴充套件許可權	u:使用者名稱 g:使用者組名 檔名
    -b 還原擴充套件許可權

getfacl 獲取擴充套件許可權列表
    getfacl 檔名

比如:

要為檔案example.txt設定使用者smileleooo的讀取和寫入許可權

setfacl -m u:smileleooo:rw example.txt

特殊許可權的管理

  1. Setuid(SUID): 當執行檔案時,該檔案將以所有者的身份而不是執行者的身份執行。
chmod u+s filename
  1. Setgid(SGID): 當執行檔案時,該檔案將以組的身份而不是執行者的身份執行。
chmod g+s filename
  1. Sticky Bit: 當應用於目錄時,只有目錄的所有者、檔案的所有者和root使用者才能刪除目錄中的檔案。
chmod +t directory

許可權掩碼

umask 是一個位掩碼,用於確定新建檔案的預設許可權。它指定了在建立新檔案或目錄時,系統將從許可權中掩碼掉的位。

umask 值是一個八進位制數,表示為三位數字,每個數字代表了使用者、組和其他使用者的許可權位掩碼,其中 1 表示遮蔽,0 表示保留。

例如,如果umask值為022,則新建檔案的預設許可權為666(rw-rw-rw-)減去022,得到644(rw-r--r--)。

umask的設定會影響新建檔案的預設許可權,但不會影響現有檔案的許可權。 umask值越低,新檔案的預設許可權越高。


若有錯誤,歡迎指正!o( ̄▽ ̄)ブ

相關文章