Linux 基礎/檔案系統、許可權
外觀
< Linux 基礎
- Linux 系統基礎
- 系統分割槽
- 交換分割槽,在記憶體不足時使用,未使用的程式檔案會被轉移到該分割槽。
- 我們可以隨時將交換空間新增為系統上的檔案。這些檔案的大小不會改變,因此不會出現碎片化。
- 我們可以將 Linux 安裝到獨立的檔案系統中,如果我們將其作為伺服器安裝。這樣做是為了提高安全性,例如,如果日誌檔案填滿了系統,而它們在單獨的分割槽上,系統就不會停止。
- 我們通常將以下目錄放在單獨的分割槽上:/home /var /tmp /boot /usr
- 分割槽
- 我們將介質(HDD、SSD)劃分為分割槽,並在其中建立檔案系統。
- 分割槽表指定了儲存分割槽的方案。出於相容性原因,Linux 預設使用“DOS”分割槽表。
- DOS 分割槽表只允許 4 個主分割槽,其餘分割槽可以位於擴充套件分割槽中。擴充套件分割槽可以進一步劃分為多個部分,我們稱這些部分為邏輯分割槽。
- GPT 分割槽表允許無限個分割槽。這更為常見。
- DAC(Discretionary Access Control,自主訪問控制)允許已識別的使用者根據其屬性訪問物件。訪問許可權只能設定為所有者和組。
- 我們也稱之為 UNIX 許可權。
- 還有一種稱為 MAC(Mandatory Access Control,強制訪問控制)。我們為物件建立訪問規則,這些規則適用於所有使用者(即使是 root)。
- 第三種是基於角色的訪問控制(RBAC)。超級使用者建立多個角色。有了給定的許可權,我們可以訪問特定的物件。
- 我們區分三種許可權
- 讀取 (r)
- 寫入 (w)
- 執行 (x)
- 許可權可以授予三種類型的使用者
- 所有者
- 屬於某個組的使用者
- 其他所有人
- 我們可以使用 chmod 命令設定許可權,有時我們會根據下表將許可權與所有者、組和其他人相關聯
| 使用者 | u |
| 組 | g |
| 其他 | o |
| 所有 | a |
- 示例:HOME 資料夾中 ls -l 的輸出
-rw-r--r-- 1 joska joska 3184 dec 13 18.37 .bashrc
| 型別 | 所有者許可權 | 組許可權 | 其他 |
|---|---|---|---|
| - | rw- | r-- | r-- |
型別可以是
| 內容 | 意義 |
|---|---|
| - | 普通檔案 |
| d | 目錄 |
| D | Solaris 閘道器(程序間通訊) |
| c | 字元裝置(tty 或印表機) |
| b | 塊裝置(磁碟或 CD-ROM) |
| l | 符號連結(軟連結) |
| s | 套接字 |
| = 或 p | FIFO(System V,Linux) |
chown 命令
- 我們可以使用該命令分配檔案或目錄的所有者和組。
chown joska.joska filename
chown joska:joska filename
chown joska. filename
chown joska: filename
chmod 命令
- 它可以用於設定許可權。
- 我們可以使用兩種方法新增/移除許可權。第一種是使用數字,第二種是使用字母。
- 我們使用字母指定要新增或移除許可權的使用者。然後是 +/-,取決於我們要修改的內容(+: 新增,-: 移除)。最後是我們想要更改的內容。使用者型別是可疊加的,因此我們可以寫成 ug 或 uo 或 ugo,最後一個等效於 "a"。許可權也可以疊加。
- 我們要授予使用者對 forest.txt 檔案的寫入許可權:
chmod u+w forest.txt - 我們要授予組和所有者所有許可權:
chmod ug+rwx forest.txt - 我們也可以使用數字來設定:
chmod 770 forest.txt - "770" 的解釋
| 所有者 / 使用者 (u) | 組 (g) | 其他 (o) |
|---|---|---|
| 421 | 421 | 000 |
4 表示讀取,2 表示寫入,1 表示執行。
SUID、SGID、粘性位
- SUID:我們可以設定程式以哪個使用者的許可權執行,但這存在安全風險,所以只有在無法用其他方法解決問題時才使用。
- SGID:設定該位後,程式可以以檔案所有者所在組的許可權執行,並且我們可以在目錄中設定它,因此所有檔案都屬於特定組的所有權。
- 粘性位:開啟粘性位表示作業系統應在執行後將檔案保留在記憶體中,以便以後更快地啟動。
- 我們也可以在目錄的情況下開啟粘性位。任何人都可以將檔案新增到具有粘性位的資料夾中(儘管其他許可權必須符合),但每個人都可以刪除自己的檔案。