檔系統和文件許可權

檔系統是一種由檔或檔夾的集合組織的結構。它確定對數據的控制,即如何存儲和檢索數據。

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-ugoa表示,其中u表示用戶,g表示組,o表示其他,以及a對所有類。
  • operator(+-)用於添加或刪除許可權。
  • permission由指示符rwx表示,以分別允許訪問以讀取,修改或運行腳本。

讓我們更改下麵給出的aa.sh檔的許可權:

1. 為所有類添加執行的許可權

chmod o+w,o+x aa.sh

2.刪除其他類的寫入和執行許可權

chmod o-w,o-x aa.sh


因此,如果需要,都可以更改類的任何許可權。


上一篇: Bash腳本 下一篇: Bash入門程式