- 通用許可權的管理
- 擴充套件許可權的管理
- 特殊許可權的管理
- 許可權掩碼
在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
- 使用數字許可權表示法:
chmod 755 filename
# 將檔案的許可權設定為755
即所有者具有讀、寫、執行許可權,組使用者和其他使用者只有讀和執行許可權。
- 使用符號許可權表示法:
使用 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
特殊許可權的管理
- Setuid(SUID): 當執行檔案時,該檔案將以所有者的身份而不是執行者的身份執行。
chmod u+s filename
- Setgid(SGID): 當執行檔案時,該檔案將以組的身份而不是執行者的身份執行。
chmod g+s filename
- Sticky Bit: 當應用於目錄時,只有目錄的所有者、檔案的所有者和root使用者才能刪除目錄中的檔案。
chmod +t directory
許可權掩碼
umask 是一個位掩碼,用於確定新建檔案的預設許可權。它指定了在建立新檔案或目錄時,系統將從許可權中掩碼掉的位。
umask 值是一個八進位制數,表示為三位數字,每個數字代表了使用者、組和其他使用者的許可權位掩碼,其中 1 表示遮蔽,0 表示保留。
例如,如果umask值為022,則新建檔案的預設許可權為666(rw-rw-rw-)減去022,得到644(rw-r--r--)。
umask的設定會影響新建檔案的預設許可權,但不會影響現有檔案的許可權。 umask值越低,新檔案的預設許可權越高。
若有錯誤,歡迎指正!o( ̄▽ ̄)ブ