這節課我們重點來學習許可權管理命令,說到許可權大家可能第一時間能想到的就是讀、寫、執行 rwx
三種許可權,在正式講解許可權命令之前,先簡單的介紹一下rwx
許可權對於檔案和目錄的不同含義。
許可權字元 | 許可權 | 對檔案的許可權意義 | 對目錄的許可權意義 |
---|---|---|---|
r | 讀許可權 | 可以檢視檔案內容 | 可以列出目中的內容 |
w | 寫許可權 | 可以修改檔案內容 | 可以在目錄中建立和刪除檔案 |
x | 執行許可權 | 可以執行檔案(如命令、指令碼) | 可以進入目錄 |
1、chmod
命令解釋
- 命令名稱:
chmod
- 命令英文全稱:
change the permissions mode of a file
- 命令所在路徑:
/bin/chmod
- 執行許可權:所有使用者
- 命令功能:修改檔案或目錄的許可權
- 語法:
chmod [ugoa] [+-=] [rwx] [檔案或目錄]
引數說明
[ugo] : u 表示該檔案的擁有者,g 表示與該檔案的擁有者屬於同一個所屬組(group),o 表示其他以外的人,a 表示這三者皆是。
[+-=] : + 表示增加許可權、- 表示取消許可權、= 表示覆蓋之前的許可權。
[rwx] : r 表示可讀取,w 表示可寫入,x 表示可執行
舉例
$ chmod u+wx file1
#將file1
的所有者新增可寫和可執行許可權
$ chmod o-r file1
#將file1
給其他人去掉可讀許可權
$ chmod g=rwx
#將所屬組的許可權設定為可讀、寫、執行許可權,不管之前是的許可權是什麼
比如我們目錄下面有file1
檔案,目前所有者許可權是 rw
,現在給所有者增加 x
許可權,執行 $ chmod u+x file1
即可:
雖然這種方法很方便,但是我們在實際過程中,並不太用這種方式,而是透過數字的方法來設定許可權,語法如下:
$ chmod [mode=421] [檔案或目錄]
#其中4
代表r
讀許可權,2
代表w
寫許可權,1
代表x
執行許可權
我們知道一個檔案的許可權是由rwx
來表示,比如 rwxr-xr--
,在前的文章我們有提到,把這個許可權每三個分為一組,分別代表所有者許可權、所屬組許可權以及其他人許可權。
拿 rwxr-xr--
舉例,每三個分為一組,那麼可以分為:所有者許可權是 rwx
,所屬組許可權是 r-x
,其他人許可權是 r--
。如果用陣列來代替,所有者許可權rwx:4+2+1=7
,依次類推,所屬組許可權是5,其他人許可權是4。因此用數字來表示許可權的命令就是:chmod 754 file
比如我目錄下有個 file2
檔案,目前許可權是rw-r--r--
(644),現在要改成 rwxr-xr-x
(755),執行命令$ chmod 755 file2
即可:
其他引數說明
-c
: 若該檔案許可權確實已經更改,才顯示其更改動作-f
: 若該檔案許可權無法被更改也不要顯示錯誤訊息-v
: 顯示許可權變更的詳細資料-R
: 對目前目錄下的所有檔案與子目錄進行相同的許可權變更(即以遞迴的方式逐個變更)--help
: 顯示輔助說明--version
: 顯示版本
比如我要對當前目錄下所有的檔案及目錄修改為
777
許可權,執行$ chmod -R 777 *
2、chown
命令解釋
- 命令名稱:
chown
- 命令英文全稱:
change file ownership
- 命令所在路徑:
/bin/chown
- 執行許可權:所有使用者
- 命令功能:修改檔案或目錄的所有者
- 語法:
chown [使用者] [檔案或目錄]
舉例
比如我test
目錄下面有個file1
檔案,目前所有者是 root
,我想改成我安裝系統的時候定義的使用者chuan
,執行命令:
$chown chuan file1
3、chgrp
命令解釋
- 命令名稱:
chgrp
- 命令英文全稱:
change file group ownership
- 命令所在路徑:
/bin/chgrp
- 執行許可權:所有使用者
- 命令功能:修改檔案或目錄的所屬組
- 語法:
chgrp [使用者組] [檔案或目錄]
使用方法和chown
一樣,這裡就不多做說明了。
4、umask
命令解釋
- 命令名稱:
umask
- 命令所在路徑:
/bin/umask
- 執行許可權:所有使用者
- 命令功能:在建立檔案時預設預設的許可權掩碼
- 語法:
umask [-S]
引數說明
-S
以文字的方式來表示許可權掩碼
舉例
可以使用命令 umask
來檢視umask值:
$ umask
可以看到umask值為0022,其中第一個0與特殊許可權有關,可以暫時不用理會,後三位002則與普通許可權(rwx)有關,即許可權掩碼值,其中002中:
第一個0與使用者(user)許可權有關,表示從使用者許可權減0,也就是許可權不變,所以檔案的所有者的許可權是預設許可權(rwx)
第二個2與組許可權(group)有關,由於w=2,所以需要從其他使用者預設許可權(rw)減去2,也就是去掉寫(w)許可權
所屬組的許可權(r-x)最後一位2則與系統中其他使用者(others)的許可權有關,也是一樣的去掉寫(w)許可權。
因此最後我們檢視它的許可權應該是:rwxr-xr-x
其實這樣看起來不太直觀,我們可以使用:
$ umask -S
使用者許可權管理命令主要就是以上幾個命令了,下一節課我們來繼續學習Linux的常用其他命令。
本作品採用《CC 協議》,轉載必須註明作者和本文連結