跳轉到內容

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:設定該位後,程式可以以檔案所有者所在組的許可權執行,並且我們可以在目錄中設定它,因此所有檔案都屬於特定組的所有權。
  • 粘性位:開啟粘性位表示作業系統應在執行後將檔案保留在記憶體中,以便以後更快地啟動。
    • 我們也可以在目錄的情況下開啟粘性位。任何人都可以將檔案新增到具有粘性位的資料夾中(儘管其他許可權必須符合),但每個人都可以刪除自己的檔案。
華夏公益教科書