檔系統是一種由檔或檔夾的集合組織的結構。它確定對數據的控制,即如何存儲和檢索數據。
1. 檔系統
Linux檔系統是一個由許多目錄組成的樹狀結構。這些目錄只是包含其他檔列表的檔。Linux在檔和目錄之間沒有區別。Linux檔系統中的所有檔都稱為目錄,這些檔的分類如下:
- 包含數據,文本,圖像,程式指令的普通檔。
- 用於訪問硬體設備的特殊檔。
- 包含普通檔和特殊檔的目錄。
下麵讓我們看一下Linux檔系統。使用ls -l
命令列出所有檔和目錄。
上面圖中有七列,其定義如下:
- 第一列代表檔類型和文件許可權。每個檔行均以檔類型開頭,然後指定與檔關聯的訪問許可權。如以下類型的檔,帶有其特定字元:
- 常規檔(
-
) - 目錄(
d
) - 鏈接(
l
) - 特殊檔案(
c
) - 套接(
s
) - 命名管道(
p
) - 塊設備(
b
)
- 常規檔(
- 第二列代表存儲塊的數量。
- 第三列代表檔的所有者或具有管理權限的超級用戶。
- 第四列代表所有者/超級用戶組。
- 第五列代表檔大小。
- 第六列表示創建或最後修改檔的日期和時間。
- 最後一列代表檔或目錄的名稱。
2. 檔許可權
儘管具有最佳安全性,基於Linux的操作系統仍需要檔許可權來保護其檔系統,因為當用戶向檔和目錄分配不當許可權時,會發生基於檔許可權的問題。這些問題可能導致惡意或意外篡改檔系統。因此,Linux通過以下兩個授權屬性來保護其檔系統:
2.1. 許可權
與檔相關的三種類型的許可權如下:
- 閱讀(
r
)許可權,可以通過此許可權可以查看檔的內容。 - 寫入(
w
)許可權,通過此許可權可以修改檔內容。 - 執行(
x
)許可權,通過此許可權可以運行編程檔或腳本。
注意:在調用許可權的情況下會提供破折號(
-
)。
2.2. 所有權
Linux用戶分為以下三種:
- 所有者是創建檔的超級用戶。他可以訪問與檔關聯的所有權限,包括讀取,修改和運行檔。
- 用戶組稱為一組用戶或多用戶。超級用戶創建用戶組,組中的每個成員都具有與檔關聯的相同訪問許可權。
- 其他用戶(即第三方用戶)是不屬於超級用戶/組成員的其他任何人。他們使用與超級用戶/組成員創建或擁有的任何檔或目錄關聯的許可權。
讓我們通過一個例子來理解這個概念。
以第一列為例,它有十個槽位。
- 第一個插位(
-
)表示由aa.sh
命名的檔。 - 接下來的三個插位(
rw-
)指定分配的所有者使用的許可權。此許可權表示可以讀取和寫入。在這裏,執行許可權被拒絕。 - 接下來的三個插位(
r--
)指定擁有該目錄的組成員使用的許可權。此許可權表示可以讀取許可權,但不包括執行許可權。 - 接下來的三個插位(
r--
)指定第三方用戶使用的許可權。此許可權表示可以讀取許可權。在這裏,讀寫許可權均被拒絕。
3. 更改許可權
可以使用chmod
命令更改每個類(用戶/組/其他)的檔許可權。刪除或添加任何類的任何許可權的基本形式是:
chmod [class][operator][permission] file_name
chmod [ugoa][+or-][rwx] file_name
其中,
class
由-u
,g
,o
和a
表示,其中u
表示用戶,g
表示組,o
表示其他,以及a
對所有類。operator
(+
或-
)用於添加或刪除許可權。permission
由指示符r
,w
,x
表示,以分別允許訪問以讀取,修改或運行腳本。
讓我們更改下麵給出的aa.sh
檔的許可權:
1. 為所有類添加執行的許可權
chmod o+w,o+x aa.sh
2.刪除其他類的寫入和執行許可權
chmod o-w,o-x aa.sh
因此,如果需要,都可以更改類的任何許可權。