解析 Linux Umask 命令
在創建新文件或目錄時,Linux操作系統會自動分配默認文件許可權。umask(用戶文件模式創建掩碼)可用於定義並分配每個用戶的默認許可權。
在本教程中,我們將了解umask命令以及如何使用它來定義默認文件許可權。
什麼是umask及其工作原理
術語「掩碼」定義了許可權分組,它控制了如何為新創建的文件和目錄設置許可權。umask命令用於為文件和目錄分配默認許可權。
umask一詞可以指以下兩個內容之一:
- 用戶定義的文件創建掩碼。文件創建掩碼可用於選擇如何控制許可權。此掩碼與默認系統許可權相關聯並更新它們。umask命令應用此掩碼。
- 設置默認umask值的umask命令,可以使用八進位格式或符號格式。
umask命令定義了默認的系統文件和目錄許可權,分為三個類別:
- 用戶:定義所有者許可權。創建文件或文件夾的用戶是默認所有者。
- 組:為Linux組定義組許可權,這些組共享相同的文件許可權或目錄。
- 其他:為不是所有者也不是組的任何人定義許可權。設置這些許可權後,任何人都可以訪問文件和文件夾。通常稱它們為全球可讀文件和目錄。
以下圖解釋了umask和許可權的工作原理:
-
用戶許可權 - 用戶對文件具有讀和寫許可權。
-
組許可權 - 組對文件具有讀和寫許可權。
-
其他許可權 - 其他人只對文件具有讀許可權。
-
硬鏈接 - 為此文件創建了1個硬鏈接。
-
所有者用戶名 - 所有者用戶的名稱。
-
所有者組 - 所有者組的名稱。
-
大小 - 文件的總大小(以位元組為單位)。
-
上次修改的日期/時間 - 文件的上次修改日期和時間。
-
文件/目錄名稱 - 文件的名稱。
umask中的每個位對應於一個八進位umask值。例如,rw-rw-r
具有以下值:
- 所有者:rw- = 4+2+0=6
- 組:rw- = 4+2+0=6
- 其他:r-- = 4+0+0=4
掩碼中的RWX表示讀、寫和執行的能力。執行許可權不適用於文件。
umask和chmod之間的區別
umask命令和chmod命令都用於在Linux中設置許可權,但它們在本質上有所不同。
umask命令更改默認許可權,因此使用此命令設置的許可權會自動應用於所有新創建的文件和目錄。
chmod命令更改現有文件和文件夾的許可權。例如,如果您將名為services
的文件的所有權分配給用戶tom
和組adm
,則更改將僅限於services
文件。它不會影響系統上的任何其他文件。
umask命令會影響整個系統的許可權,而chmod命令只會影響指定文件的許可權。
umask命令
umask命令用於在Linux計算機上設置文件和文件夾的默認umask值。您的系統上的所有新創建的文件和目錄都將使用umask命令定義的許可權。
使用umask命令而不帶任何選項來檢查當前掩碼:
umask
0002表示第一個數字0被稱為[粘附位] 這是一種特殊的安全功能。接下來的三個數字表示文件或目錄umask的八進位值。
umask命令語法
umask命令的基本語法:
umask [-p] [-S] [mask]
umask選項
您可以在umask中使用以下選項:
選項 | 描述 |
---|---|
mask |
以八進位格式表示的新掩碼。 |
-p |
使用umask命令顯示當前掩碼。您可以將其複製以供將來參考。 |
-S |
顯示當前掩碼的符號umask值。 |
掩碼值
掩碼值以符號和數字格式表示。
符號格式以rwx(讀-寫-執行)格式表示。最左邊的字元用於讀許可權,中間的字元用於寫許可權,最右邊的字元用於執行許可權。例如,如果對於所有者,符號umask設置為r--
,那麼所有者只對特定文件或目錄具有讀許可權。
八進位模式umask值在以下表格中描述:
許可權 | 八進位值 | 二進位值 | 描述 |
---|---|---|---|
- | 0 | 000 | 沒有許可權 |
-x | 1 | 001 | 僅執行許可權 |
-w- | 2 | 010 | 僅寫許可權 |
-wx | 3 | 011 | 寫和執行許可權 |
r- | 4 | 100 | 僅讀許可權 |
r-x | 5 | 101 | 讀和執行許可權 |
rw- | 6 | 110 | 讀和寫許可權 |
rwx | 7 | 111 | 所有許可權-讀、寫和執行許可權 |
文件和目錄的umask值
在更改系統上的umask值之前,您必須了解其對默認文件和文件夾許可權的影響。
文件的默認系統許可權是666(rw-rw-rw-),目錄的默認系統許可權是777(rwxrwxrwx)。
默認掩碼值為002。它將文件夾許可權更改為777-002 = 775(rwxrwxr-x)並將文件許可權更改為666-002 = 664(rw-rw-r--)。
通過從默認掩碼值(777和666)中減去默認掩碼值來得出最終的umask值。
設置Umask值
要將所有者、組和其他人的文件夾許可權設置為只讀,我們需要將umask設置為333:
umask 0333
您還可以使用符號值來設置umask:
umask u=rwx,g=rwx,o=r
其中:
u
設置用戶/所有者的許可權。
g
設置組的許可權。
o
設置其他人的許可權。
該命令僅設置指定的文件許可權。例如,對於其他人,我們只希望分配讀許可權,因此我們指定了只讀(r)的符號值。
結論
在本教程中,我們學習了umask命令以及如何使用它。在設置umask值時必須非常小心,因為它會影響整個系統的安全性。