在 Linux/Unix 中更改資料夾和目錄的許可權

Nilesh Katuwal 2023年1月30日
  1. Unix/Linux 系統中的檔案所有權
  2. 在 Linux 中檢視檔案許可權
  3. 更改 Unix/Linux 系統中的檔案許可權
  4. 在 Linux 中更改組和所有者
  5. 在 Linux 中更改所有權命令
  6. 在 Linux 的絕對模式下使用 chmod
在 Linux/Unix 中更改資料夾和目錄的許可權

檔案許可權系統是 Linux 作業系統的基本安全元素之一。

這些功能允許我們調整檔案許可權和訪問模式。我們提供基於適當許可權的許可權,以避免在使用者未獲得對檔案和資料夾的適當訪問許可權時可能出現的漏洞。

Unix/Linux 系統中的檔案所有權

在 Unix/Linux 系統中,檔案和目錄的所有權分為三種型別。檔案的分配所有者有權根據它收到的許可權對其進行更改。

  • 所有者許可權:檔案所有者的許可權指定檔案所有者可以執行的功能。由於建立檔案的使用者成為其所有者,因此使用者也稱為所有者。
  • 按組劃分的許可權:組的許可權決定了如果使用者是該組的成員,他們可以對檔案執行哪些活動。
  • 附加許可權:其他使用者的許可權定義了他們可以對檔案執行的操作。

每個檔案最初都有三個訪問選項。它們如下:

  • Read (r):它允許你檢索檔案的內容,但不能寫入它們。它將使你能夠接收在目錄中找到的檔案和目錄的列表。
  • Write (w):它使你能夠向檔案新增新資料或更改現有資料,以及建立和修改檔案和目錄。
  • Execute (x):如果程式沒有執行標誌,則無法執行。為所有程式和指令碼設定此屬性。系統使用它來確定檔案是否應該作為程式啟動。

在 Linux 中檢視檔案許可權

當然,你可以使用 Linux 上的檔案管理器來搜尋檔案許可權。它們都支援此功能,但你將通過這種方式收到部分資訊。

使用帶有 -l 引數的 ls 命令來獲取所有標誌的完整詳細資訊。將顯示目錄中的所有檔案,以及它們的屬性和位。

在儲存檔案的資料夾中執行以下命令以查詢 Linux 檔案的許可權:

$ ls -l

我在其中建立了一個資料夾和兩個檔案,testtestfile

輸出:

total 0
-rw-rw-r-- 1 user user 0 Jan 14 01:00 test
-rw-rw-r-- 1 user user 0 Jan 14 01:00 testfile

第一列表示各種訪問模式或與檔案或目錄相關的許可權。然後是權利組,首先是所有者,然後是組,然後是其他所有人。

讓我們仔細看看許可權標誌的條件值是什麼意思:

  • --- - 完全沒有權利;
  • --x - 僅允許檔案作為程式執行,但不能更改或讀取;
  • -w- - 只允許寫入和修改檔案;
  • -wx - 允許修改和執行,但在目錄的情況下,你無法檢視其內容;
  • r-- - 只讀許可權;
  • rx - 只能讀取和執行,沒有寫入許可權;
  • rw- - 讀寫許可權,但不能執行;
  • rwx - 所有權利;
  • --s - 當設定 SUIDSGID 位時,所有者的 SUID 顯示在欄位中,而組的 SGID 顯示在欄位中;
  • --t - 設定了 sticky-bit,這意味著使用者不能刪除這個檔案。

更改 Unix/Linux 系統中的檔案許可權

chmod 是一個更改模式命令,用於更改檔案或目錄的許可權。chmod 的兩種使用方式是符號模式和絕對模式。

在符號模式下使用 chmod

符號模式是學習者調整檔案或目錄許可權最直接的方法。

使用下表中的運算子,你可以新增、刪除或指定你想要的具有符號許可權的許可權集。

chmod 運算子 描述
+ 指定的許可權被新增到檔案或目錄。
- 刪除檔案或目錄的指定許可權。
= 設定指定使用者的許可權。

讓我們看一個例子。在測試中執行 ls -l 時,你會看到許可權如下:

$ ls -l test

輸出:

-rw-rw-r-- 1 user user 0 Jan 14 01:00 test

然後在測試中執行上表中的每個示例 chmod 命令,然後執行 ​​ls -l 以檢視許可權更改。

$ chmod o+wx test
$ ls -l test

這裡,o 表示其他使用者,w 表示寫入,x 表示執行。 + 用於將指定的許可權新增到 test 檔案。

輸出:

-rw-rw-rwx 1 user user 0 Jan 14 01:00 test

我們可以看到上面兩個輸出的差異。 -rw-rw-r-- 更改為 -rw-rw-rwx。上述命令為其他使用者新增了 rw 許可權。

在 Linux 中更改組和所有者

當他們在 Unix 上建立一個帳戶時,每個使用者都會被賦予一個所有者 ID 和一個組 ID。以上所有許可權也是根據所有者和組分配的。

更改組和所有者主要有兩個命令。

  • chownchown 命令,代表 change owner,用於更改檔案的所有者。
  • chgrpchgrp 命令,代表 change group,用於更改檔案的組。

使用的許可權組是:

  • u – 所有者
  • g - 組
  • o - 其他
  • a - 所有使用者

在 Linux 中更改所有權命令

chown 命令用於更改檔案的所有權。

以下是基本語法:

$ chown [name] [filename]

系統使用者的名稱或系統使用者的使用者標識(UID)可以作為使用者的值。

同樣,要更改檔案的組所有者:

$ chgrp [group_name] [filename]

在 Linux 的絕對模式下使用 chmod

檔案許可權也可以用數字程式碼更改。接入方式的等效數字程式碼如下:

數字 訪問模式
0 ---
1 -x
2 -w-
3 -wx
4 r-
5 r-x
6 rw-
7 rwx

例如,chmod 711 filename 授予所有者所有許可權,而所有其他使用者僅授予執行許可權。

讓我們看看檔案 testfile 的許可權。

$ ls -l testfile

輸出:

-rw-rw-r-- 1 user user 0 Jan 14 01:00 testfile

現在,使用帶有 chmod 的數字程式碼。

$ chmod 711 testfile
$ ls -l testfile

輸出:

-rwx--x--x 1 user user 0 Jan 14 01:00 testfile

如輸出所示,檔案許可權已更改。