realme 真我 GT Neo2 將於明日 10 點亮相,預計搭載驍龍 870
Linux中的Chmod命令用於更改或分配檔案和目錄的許可權。在Linux/Unix系統中,檔案和目錄的可訪問性是由檔案所有權和許可權決定的。在上一篇文章中,我們瞭解瞭如何使用chown命令管理檔案和目錄的所有權。在本教程中,我們將介紹chmod命令。
chmod命令(change mode的縮寫)用於管理檔案和目錄許可權,並確定誰可以訪問它們。現在讓我們深入瞭解檔案和目錄許可權的本質,以及如何修改它們。
Linux許可權
為了更好地理解chmod命令是如何工作的,我們該謹慎地研究Linux檔案許可權模型。在Linux中,我們具有3種類型的檔案許可權:讀(r),寫(w)和執行(x)許可權。這些許可權確定哪些使用者可以讀取,寫入或執行檔案。您可以使用文字或八進位制(數字)表示法來分配這些許可權,我們將在本教程後面討論。檔案和目錄可以屬於檔案(u),組(g)或其他(o)的所有者
- u - 所有人的許可權
- g - 所有組的許可權
- o- 其他人的許可權
使用ls -l命令以長格式的形式檢視當前目錄下所有可見檔案的詳細屬性。該-l標誌列出檔案的許可權。許可權分為三組:使用者(user)組(group)和其他(others)。為了更好地理解檔案許可權,我們將列出目錄的內容,如下所示:
linuxmi@linuxmi:~/www.linuxmi.com$ ls -l
從最左端開始,第一個字元/符號表示檔案型別。一個連字元( - ),表示該檔案是一個普通檔案。符號d表示它是目錄。符號l表示它是符號連結。其餘的9個字元分成3個三元組,每個三元組帶有三個符號r(read),w(write)和x(execute)。如前所述,第一部分指向所有者許可權,第二部分指示組許可權,最後一部分指定其他使用者對該檔案或目錄具有的許可權。從輸出中,我們可以看到我們有4個檔案和2個目錄。讓我們檢視下第一個檔案
-rw-rw-r-- 1 linuxmi linuxmi 1087 10月 3 20:23 linuxmi.com.cpp
對於第一個檔案,-rw-rw-r–許可權表示該檔案的所有者具有讀取和寫入許可權,該組還具有讀取和寫入許可權,而其他使用者僅具有讀取許可權。再看看目錄的許可權:
drwxrwxr-x 3 linuxmi linuxmi 4096 10月 12 13:31 Linux迷
我們可以看到目錄和組的所有者擁有所有許可權(讀取,寫入和執行),而其他使用者僅具有讀取和執行許可權。在三重連字元符號-表示沒有許可權已被授予該檔案,小組或其他使用者的所有者。
使用chmod命令設定檔案和目錄許可權
在查看了檔案許可權以及如何檢視它們之後,我們不再關注如何修改這些許可權。Linux中的chmod命令用於使用文字(符號)或數字(八進位制)表示法更改檔案和目錄許可權。它採用以下語法:
$ chmod [選項]模式檔名
只有root使用者或具有sudo特權的普通使用者才能更改檔案或目錄許可權。您可以在命令語法中傳遞多個檔案或目錄,並用空格分隔。現在讓我們深入研究並檢視chmod命令的不同示例。
示例1)使用數字符號分配許可權
使用數字樣式/符號設定許可權時,請使用以下語法:
$ sudo chmod [選項]數字值檔名
數值可以為3或4個數字。但是,在大多數情況下,使用3個數字。讀取,寫入和執行許可權採用以下值:
- 讀取許可權=> 4
- 寫許可權=> 2
- 執行許可權=> 1
許可權值的總和,即在三個段中的每一箇中的讀取,寫入和執行,都佔給定檔案或目錄的完整許可權。這是什麼意思?假設所有者具有讀取,寫入和執行許可權,該組具有讀取和執行許可權,而其他使用者僅具有讀取許可權,可以將其細分如下:
u:rwx = 7
g:rx = 5
o:r– = 4
因此,我們得到的值為754,作為給定檔案的檔案許可權的數值。要將讀取,寫入和執行許可權分配給所有者,而僅將讀取許可權分配給組和其他使用者,請執行以下命令:
$ chmod 744 www.linuxmi.com.txt
要將所有許可權分配給檔案的所有者,請對該組讀取和執行許可權,而對其他使用者則完全沒有許可權,請執行:
$ chmod 750 www.linuxmi.com.txt
要將所有許可權分配給檔案的所有者,請對該組具有讀寫許可權,其他使用者請執行以下命令:
$ chmod 755 linuxmi.txt
示例2)遞迴分配目錄許可權
為目錄分配許可權時,請使用-R標誌以遞迴方式為其目錄和子資料夾分配許可權。例如:$ chmod 755 -R 目錄名
$ chmod 755 -R /home/linuxmi/linux
示例3)使用文字表示法指定許可權
分配許可權的另一種方法是使用文字表示法。在此方法中,chmod命令採用標誌或符號,這些標誌或符號代表語法中的所有者,組,其他或所有使用者(u,g和o)。該方法不像以前的方法那樣簡單明瞭,應注意避免分配錯誤的許可權。這是語法的樣子
$ chmod [選項] [ugoa] [– + =] [r,w,x]檔案
讓我們分解一下。第一組引數[ugoa]指定許可權將更改的使用者類別
- u:使用者
- g:組
- o:其他
- a:全部(包括以上所有內容)
如果省略了這個集合,那麼預設選項是a選項。第二組選項–操作員選項[– + =]–確定是要新增許可權還是要從使用者類別中刪除許可權。選項刪除
- – :該標誌從指定的使用者中刪除檔案許可權。
- + :將許可權新增/新增到指定使用者。
- = :為指定的使用者分配不同的許可權,並刪除該使用者段的先前許可權。
示例4)為檔案分配讀取許可權
$ chmod o = r 檔名上面的命令僅將用符號“ o”表示的其他使用者分配給該檔案的讀取許可權,並刪除先前分配給' others '段的許可權。取得具有以下許可權的linuxmi.txt
linuxmi@linuxmi:~/www.linuxmi.com$ ls -l linuxmi.txt
-rwxrwxr-x 1 linuxmi linuxmi 1087 10月 3 20:23 linuxmi.txt
分配“others (o)”段的讀許可權,請僅執行
linuxmi@linuxmi:~/www.linuxmi.com$ sudo chmod o=r linuxmi.txt
[sudo] linuxmi 的密碼:
linuxmi@linuxmi:~/www.linuxmi.com$ ls -l linuxmi.txt
-rwxrwxr-- 1 linuxmi linuxmi 1087 10月 3 20:23 linuxmi.txt
從輸出中,我們可以看到已為“others”段分配了讀取許可權,而同時又失去了QQ賬號賣號平臺地圖執行許可權。這意味著=運算子將分配新的許可權,而同時會刪除以前的許可權。
示例5)向檔案和組所有者分配執行許可權
linuxmi@linuxmi:~/www.linuxmi.com$ sudo chmod ug+x linuxmi.txt
linuxmi@linuxmi:~/www.linuxmi.com$ ls -l linuxmi.txt
-rwxrwxr-- 1 linuxmi linuxmi 1087 10月 3 20:23 linuxmi.txt
上面的命令將執行許可權新增到檔案的所有者和組。使用我們的檔案,它將變成:
示例6)為檔案,組和其他分配不同的許可權
sudo chmod u=rwx,g=rw,o=r filename上面的命令將所有許可權分配給檔案的所有者,將讀寫許可權分配給組,僅將讀取許可權授予其他使用者。注意:如果在=運算子之後未指定任何許可權,則將刪除該使用者段中的所有許可權。
示例7)刪除其他使用者的所有許可權
$ sudo chmod o= filenamesudo chmod o= linuxmi.txt$ sudo chmod o-rwx linuxmi.txt上面的命令從“其他”使用者段中刪除指定檔案的所有許可權。該命令與以下命令具有相同的作用:$ sudo chmod o-rwx filename
linuxmi@linuxmi:~/www.linuxmi.com$ sudo chmod o= linuxmi.txt
linuxmi@linuxmi:~/www.linuxmi.com$ ls -l linuxmi.txt
-rwxrw---- 1 linuxmi linuxmi 1087 10月 3 20:23 linuxmi.txt
linuxmi@linuxmi:~/www.linuxmi.com$ sudo chmod o-rwx linuxmi.txt
linuxmi@linuxmi:~/www.linuxmi.com$ ls -l linuxmi.txt
-rwxrw---- 1 linuxmi linuxmi 1087 10月 3 20:23 linuxmi.txt
示例8)使用模板檔案分配許可權
分配檔案許可權的另一種便捷方法是使用參考檔案。在此方法中,您使用--reference=<模板檔案> 選項將檔案的許可權設定為與另一個參考檔案的許可權相同。使用以下語法
$ sudo chmod –reference=ref_file filename
例如,要將linuxmi.txt的檔案許可權設定為與www.linuxmi.com.py的許可權相同,請執行以下命令:
$ sudo chmod --reference=www.linuxmi.com.py linuxmi.txt
模板檔案是www.linuxmi.com.py,將linuxmi.txt更改為模板檔案相同的許可權。
示例9)僅將執行許可權分配給目錄
假設我們有一個包含檔案和子目錄的目錄,並且我們希望僅對目錄分配執行許可權,而不接觸檔案。因此,這可以通過使用以下chmod命令來實現,
$ chmod a+X *
如果您已經注意到,我們已經使用大寫的X作為執行許可權,以上命令將在當前工作目錄的所有目錄上設定執行許可權。總結這個話題暫時到此結束。我們查看了chmod命令,並瞭解了可以使用該命令更改檔案許可權的各種示例。