Linux修改權(quán)限命令chmod用法示例
Linux中的Chmod命令用于更改或分配文件和目錄的權(quán)限。在Linux/Unix系統(tǒng)中,文件和目錄的可訪(fǎng)問(wèn)性是由文件所有權(quán)和權(quán)限決定的。在上一篇文章中,我們了解了如何使用chown命令管理文件和目錄的所有權(quán)。在本教程中,我們將介紹chmod命令。
chmod命令(change mode的縮寫(xiě))用于管理文件和目錄權(quán)限,并確定誰(shuí)可以訪(fǎng)問(wèn)它們?,F(xiàn)在讓我們深入了解文件和目錄權(quán)限的本質(zhì),以及如何修改它們。
Linux權(quán)限
為了更好地理解chmod命令是如何工作的,我們?cè)撝?jǐn)慎地研究Linux文件權(quán)限模型。
在Linux中,我們具有3種類(lèi)型的文件權(quán)限:讀(r),寫(xiě)(w)和執(zhí)行(x)權(quán)限。這些權(quán)限確定哪些用戶(hù)可以讀取,寫(xiě)入或執(zhí)行文件。您可以使用文本或八進(jìn)制(數(shù)字)表示法來(lái)分配這些權(quán)限,我們將在本教程后面討論。
來(lái)自:https://www.linuxmi.com/linux-chmod.html
文件和目錄可以屬于文件(u),組(g)或其他(o)的所有者
- u - 所有人的權(quán)限
- g - 所有組的權(quán)限
- o- 其他人的權(quán)限
使用ls -l命令以長(zhǎng)格式的形式查看當(dāng)前目錄下所有可見(jiàn)文件的詳細(xì)屬性。該-l標(biāo)志列出文件的權(quán)限。權(quán)限分為三組:用戶(hù)(user)組(group)和其他(others)。
為了更好地理解文件權(quán)限,我們將列出目錄的內(nèi)容,如下所示:
- linuxmi@linuxmi:~/www.linuxmi.com$ ls -l
從最左端開(kāi)始,第一個(gè)字符/符號(hào)表示文件類(lèi)型。一個(gè)連字符( - ) ,表示該文件是一個(gè)普通文件。符號(hào)d表示它是目錄。符號(hào)l表示它是符號(hào)鏈接。
其余的9個(gè)字符分成3個(gè)三元組,每個(gè)三元組帶有三個(gè)符號(hào)r(read),w(write)和x(execute)。如前所述,第一部分指向所有者權(quán)限,第二部分指示組權(quán)限,最后一部分指定其他用戶(hù)對(duì)該文件或目錄具有的權(quán)限。
從輸出中,我們可以看到我們有4個(gè)文件和2個(gè)目錄。
讓我們查看下第一個(gè)文件
- -rw-rw-r-- 1 linuxmi linuxmi 1087 10月 3 20:23 linuxmi.com.cpp
對(duì)于第一個(gè)文件,-rw-rw-r–權(quán)限表示該文件的所有者具有讀取和寫(xiě)入權(quán)限,該組還具有讀取和寫(xiě)入權(quán)限,而其他用戶(hù)僅具有讀取權(quán)限。
再看看目錄的權(quán)限:
- drwxrwxr-x 3 linuxmi linuxmi 4096 10月 12 13:31 Linux迷
我們可以看到目錄和組的所有者擁有所有權(quán)限(讀取,寫(xiě)入和執(zhí)行),而其他用戶(hù)僅具有讀取和執(zhí)行權(quán)限。
在三重連字符符號(hào)-表示沒(méi)有權(quán)限已被授予該文件,小組或其他用戶(hù)的所有者。
使用chmod命令設(shè)置文件和目錄權(quán)限
在查看了文件權(quán)限以及如何查看它們之后,我們不再關(guān)注如何修改這些權(quán)限。
Linux中的chmod命令用于使用文本(符號(hào))或數(shù)字(八進(jìn)制)表示法更改文件和目錄權(quán)限。它采用以下語(yǔ)法:
$ chmod [選項(xiàng)]模式文件名
只有root用戶(hù)或具有sudo特權(quán)的普通用戶(hù)才能更改文件或目錄權(quán)限。您可以在命令語(yǔ)法中傳遞多個(gè)文件或目錄,并用空格分隔。
現(xiàn)在讓我們深入研究并查看chmod命令的不同示例。
示例1)使用數(shù)字符號(hào)分配權(quán)限
使用數(shù)字樣式/符號(hào)設(shè)置權(quán)限時(shí),請(qǐng)使用以下語(yǔ)法:
$ sudo chmod [選項(xiàng)]數(shù)字值文件名
數(shù)值可以為3或4個(gè)數(shù)字。但是,在大多數(shù)情況下,使用3個(gè)數(shù)字。讀取,寫(xiě)入和執(zhí)行權(quán)限采用以下值:
- 讀取權(quán)限=> 4
- 寫(xiě)權(quán)限=> 2
- 執(zhí)行權(quán)限=> 1
權(quán)限值的總和,即在三個(gè)段中的每一個(gè)中的讀取,寫(xiě)入和執(zhí)行,都占給定文件或目錄的完整權(quán)限。
這是什么意思?
假設(shè)所有者具有讀取,寫(xiě)入和執(zhí)行權(quán)限,該組具有讀取和執(zhí)行權(quán)限,而其他用戶(hù)僅具有讀取權(quán)限,可以將其細(xì)分如下:
u:rwx = 7
g:rx = 5
o:r– = 4
因此,我們得到的值為754,作為給定文件的文件權(quán)限的數(shù)值。
要將讀取,寫(xiě)入和執(zhí)行權(quán)限分配給所有者,而僅將讀取權(quán)限分配給組和其他用戶(hù),請(qǐng)運(yùn)行以下命令:
- $ chmod 744 www.linuxmi.com.txt
要將所有權(quán)限分配給文件的所有者,請(qǐng)對(duì)該組讀取和執(zhí)行權(quán)限,而對(duì)其他用戶(hù)則完全沒(méi)有權(quán)限,請(qǐng)執(zhí)行:
- $ chmod 750 www.linuxmi.com.txt
要將所有權(quán)限分配給文件的所有者,請(qǐng)對(duì)該組具有讀寫(xiě)權(quán)限,其他用戶(hù)請(qǐng)運(yùn)行以下命令:
- $ chmod 755 linuxmi.txt
示例2)遞歸分配目錄權(quán)限
為目錄分配權(quán)限時(shí),請(qǐng)使用-R標(biāo)志以遞歸方式為其目錄和子文件夾分配權(quán)限。例如:
$ chmod 755 -R 目錄名
- $ chmod 755 -R /home/linuxmi/linux
示例3)使用文本表示法指定權(quán)限
分配權(quán)限的另一種方法是使用文本表示法。在此方法中,chmod命令采用標(biāo)志或符號(hào),這些標(biāo)志或符號(hào)代表語(yǔ)法中的所有者,組,其他或所有用戶(hù)(u,g和o)。
該方法不像以前的方法那樣簡(jiǎn)單明了,應(yīng)注意避免分配錯(cuò)誤的權(quán)限。
這是語(yǔ)法的樣子
$ chmod [選項(xiàng)] [ugoa] [– + =] [r,w,x]文件
讓我們分解一下。
第一組參數(shù)[ugoa]指定權(quán)限將更改的用戶(hù)類(lèi)別
- u:用戶(hù)
- g:組
- o:其他
- a:全部(包括以上所有內(nèi)容)
如果省略了這個(gè)集合,那么默認(rèn)選項(xiàng)是a選項(xiàng)。
第二組選項(xiàng)–操作員選項(xiàng)[– + =] –確定是要添加權(quán)限還是要從用戶(hù)類(lèi)別中刪除權(quán)限。選項(xiàng)刪除
- – :該標(biāo)志從指定的用戶(hù)中刪除文件權(quán)限。
- + :將權(quán)限添加/添加到指定用戶(hù)。
- = :為指定的用戶(hù)分配不同的權(quán)限,并刪除該用戶(hù)段的先前權(quán)限。
示例4)為文件分配讀取權(quán)限
$ chmod o = r 文件名
上面的命令僅將用符號(hào)“ o”表示的其他用戶(hù)分配給該文件的讀取權(quán)限,并刪除先前分配給' others '段的權(quán)限。取得具有以下權(quán)限的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)”段的讀權(quán)限,請(qǐng)僅運(yùn)行
- 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”段分配了讀取權(quán)限,而同時(shí)又失去了執(zhí)行權(quán)限。這意味著=運(yùn)算符將分配新的權(quán)限,而同時(shí)會(huì)刪除以前的權(quán)限。
示例5)向文件和組所有者分配執(zhí)行權(quán)限
- 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
上面的命令將執(zhí)行權(quán)限添加到文件的所有者和組。使用我們的文件,它將變成:
示例6)為文件,組和其他分配不同的權(quán)限
- sudo chmod u=rwx,g=rw,o=r filename
上面的命令將所有權(quán)限分配給文件的所有者,將讀寫(xiě)權(quán)限分配給組,僅將讀取權(quán)限授予其他用戶(hù)。
注意:如果在=運(yùn)算符之后未指定任何權(quán)限,則將刪除該用戶(hù)段中的所有權(quán)限。
示例7)刪除其他用戶(hù)的所有權(quán)限
- $ sudo chmod o= filename
- sudo chmod o= linuxmi.txt
- $ sudo chmod o-rwx linuxmi.txt
上面的命令從“其他”用戶(hù)段中刪除指定文件的所有權(quán)限。
該命令與以下命令具有相同的作用:
- $ 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)使用模板文件分配權(quán)限
分配文件權(quán)限的另一種便捷方法是使用參考文件。在此方法中,您使用--reference=<模板文件> 選項(xiàng)將文件的權(quán)限設(shè)置為與另一個(gè)參考文件的權(quán)限相同。使用以下語(yǔ)法
- $ sudo chmod –reference=ref_file filename
例如,要將linuxmi.txt的文件權(quán)限設(shè)置為與www.linuxmi.com.py的權(quán)限相同,請(qǐng)運(yùn)行以下命令:
- $ sudo chmod --reference=www.linuxmi.com.py linuxmi.txt
模板文件是www.linuxmi.com.py,將linuxmi.txt更改為模板文件相同的權(quán)限。
示例9)僅將執(zhí)行權(quán)限分配給目錄
假設(shè)我們有一個(gè)包含文件和子目錄的目錄,并且我們希望僅對(duì)目錄分配執(zhí)行權(quán)限,而不接觸文件。因此,這可以通過(guò)使用以下chmod命令來(lái)實(shí)現(xiàn),
- $ chmod a+X *
如果您已經(jīng)注意到,我們已經(jīng)使用大寫(xiě)的X作為執(zhí)行權(quán)限,以上命令將在當(dāng)前工作目錄的所有目錄上設(shè)置執(zhí)行權(quán)限。
總結(jié)
這個(gè)話(huà)題暫時(shí)到此結(jié)束。我們查看了chmod命令,并了解了可以使用該命令更改文件權(quán)限的各種示例。