檔案系統
檔案系統是一種結構化的方法,用以存儲和管理電腦上的資料。
Linux檔案系統
Linux檔案系統是一組進程,其用來管理在存儲設備上的時間、位置及存儲方式。
此外,它系統地管理磁碟區與分割區的資料,且在Linux中每一個分割區都有自己的檔案系統 => 因爲在Linux下一切皆為檔案。
Linux檔案系統結構
Linux 檔案系統包含三層
- 邏輯檔案系統 (Logical File System)
邏輯檔案系統是應用程式和檔案系統的橋樑,負責提供開啟、關閉、讀取等操作的介面。 - 虛擬檔案系統 (Virtutal File System)
VFS 提供標準介面,讓不同檔案系統同時運作並保持相容。 - 物理 / 實體檔案系統 (Physical File System)
物理 / 實體檔案系統直接管理磁碟區塊,負責資料存取與資源高效分配。

檔案管理
權限
- 什麼是權限?
=> 權限就是決定是否能訪問資源。 - 為什麼要有權限?
=> 多用戶作業系統,會同時有多個人登入訪問,權限能更好的對不同用戶進行管理。 權限的本質就是
人 + 檔案屬性- 人:root 或普通用戶
而root是超級用戶,通常不受權限拘束(絕大部分的內容root都不會被受拘束);而普通用戶會受到權限拘束。
如果要在 root 與普通用戶中做切換
如果要切換用戶通常需要輸入對應的密碼,root的密碼通常只有管理員知道,所以基本上不太能切換至root。


su - 用戶名是讓用戶以重新登入的方式進行切換。 - 檔案屬性:前面提過,Linux下一切皆檔案,既然是檔案就有天然具備的屬性(R、W、X)。
- 人:root 或普通用戶
- Linux中角色的問題
權限是依附於角色的!!而角色又分為:擁有者角色(user)、所屬組角色(group)及other角色。
(1) 用戶訪問文件的時候,自己相對於檔案的身份只會驗證一次 => 權限身份只會驗證一次。
即使文件擁有者也是屬於所屬組的一員,擁有者的Write權限被修改後,即使所屬組有Write的權限,擁有者依然不能Write。
(2) 關於可執行
一個文件要可以被執行,其需具備 a. 文件自身就是一個可執行文件 b. 文件本身具備可執行權限。。
給x權限,不是讓用戶可以執行,而是當用戶想執行的時候,OS允許執行。
(3) 文件要給其他人需要其他人的允許 ( 需要目標用戶的密碼 ) => 但可以藉由超級用戶強制將文件給其他用戶。
(4) 文件擁有者具有修改權限的權利
修改權限的指令 - chmod
chmod +rwx filename– 新增讀取、寫入和執行權限chmod -rwx directoryname– 刪除所有權限chmod +x filename– 授予可執行權限chmod -wx filename– 刪除寫入和執行權限
權限相關映射值
read -> 4 ; write -> 2 ; execute -> 1
權限的三個子問題
- 進入一個目錄需要什麼權限?
進入一個目錄需要可執行的權限,再強調一次,Linux下一切皆檔案,我既然要進入目錄,其實就相當於我要執行這個目錄,因此需要的是可執行權限。
r --- 決定用戶是否有權利查看指定目錄底下的文件屬性。
w --- 決定用戶是否有權利在特定目錄底下新增、刪除文件及修改文件名。 - 為什麼新建的目錄或普通文件默認權限是我們看到的那樣?
對於普通文件起始權限是666;目錄起始權限是777。
但是我們在沒有任何修改的情況下,看到的普通文件是664而目錄文件是775啊?
=> 這是因爲Linux系統中,為了對權限進行細粒度的控制,因此採用了權限掩碼!
我們可以使用umask指令查看掩碼。
而我們看到的權限事實上是起始權限&(~umask),也就是說,最終權限 = 起始權限去掉權限掩碼。
因此我們看到的結果是664與775而不是666和777。 - ---的情況下可以進行刪除操作嗎?


我們前面提到過,擁有者與超級管理員(root) 擁有控制權限的能力,而上面的例子中,目錄的創建者與所屬者都使root
但普通用戶卻可以刪除目錄?這其實是因爲我們當前的目錄所屬的home目錄是我們自己的!!因此我們有權利對該目錄內的普通文件或目錄進行操作,不僅如此,若我們將文件與其他用戶共享,那麼其他用戶也有權利刪除!!!
那如果不希望除了我和root以外的人刪除文件要如何解決?-----黏滯位
給other設置權限管理級別,指定t目錄下,每個人新建的文件刪除時只能自己刪除自己的。
此時刪除的權限就變成
(1) 超級管理員
(2) 該目錄的所有者
(3) 該文件的所有者