Linux常用命令之使用者許可權管理chmod、chown、chgrp、umask命令講解

九派Linux發表於2020-08-04

這節課我們重點來學習許可權管理命令,說到許可權大家可能第一時間能想到的就是讀、寫、執行 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 即可:

image

雖然這種方法很方便,但是我們在實際過程中,並不太用這種方式,而是透過數字的方法來設定許可權,語法如下:

$ 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 即可:

image

其他引數說明

  • -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

image

3、chgrp 命令解釋

  • 命令名稱:chgrp
  • 命令英文全稱:change file group ownership
  • 命令所在路徑: /bin/chgrp
  • 執行許可權:所有使用者
  • 命令功能:修改檔案或目錄的所屬組
  • 語法:chgrp [使用者組] [檔案或目錄]

使用方法和chown一樣,這裡就不多做說明了。

4、umask 命令解釋

  • 命令名稱:umask
  • 命令所在路徑: /bin/umask
  • 執行許可權:所有使用者
  • 命令功能:在建立檔案時預設預設的許可權掩碼
  • 語法:umask [-S]

引數說明

-S以文字的方式來表示許可權掩碼

舉例

可以使用命令 umask 來檢視umask值:

$ umask

image

可以看到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 協議》,轉載必須註明作者和本文連結

相關文章