1. 程式人生 > 實用技巧 >Linux修改許可權命令chmod用法示例

Linux修改許可權命令chmod用法示例

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”段分配了讀取許可權,而同時又失去了執行許可權。這意味著=運算子將分配新的許可權,而同時會刪除以前的許可權。

示例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= filename

sudo 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作為執行許可權,以上命令將在當前工作目錄的所有目錄上設定執行許可權。

感謝作者,原文:http://r6d.cn/tNnD