Linux使用:檔案或目錄的許可權設定

Breaker93發表於2017-11-14

一、What.

Linux系統中的檔案或目錄有幾種訪問許可權?

​ 在Linux系統中,每個檔案或目錄具有四種訪問許可權:可讀(r)、可寫(w)、可執行(x)和無許可權(-)。

許可權名 對於檔案的意義 對於目錄的意義
r 可以讀取該檔案內容 可以檢視該目錄下的完整檔案資訊
w 可以編輯檔案內容 可以對此目錄下的所有的檔案及目錄進行相關的更改,也就是可以更改這個目錄下的結構列表(這個要重視) 具體權利如下: 可以在此目錄下建立新的檔案或目錄; 可以在此目錄下刪除存在的檔案或目錄(不論該檔案的許可權是什麼,這點要格外注意!!!!)可以重新命名及改變檔案或目錄的位置。
x 檔案就具有了可執行的許可權-------注意:這裡和window不一樣,在win中,檔案的可執行許可權是通過副檔名錶現出來的,如exe、bat等,但是在linux中檔案的可執行許可權是通過這個x決定的,與檔名沒有什麼關係。 目錄沒有可執行的許可權,因此目錄中x的功能就是允許別的使用者進入這個目錄。

Linux系統的許可權控制基本原理是什麼?

​ 在 Linux 系統中,我們所有的操作實質都是在進行程式訪問檔案的操作。我們訪問檔案需要先取得相應的訪問許可權,而訪問許可權是通過 Linux 系統中的安全模型獲得的。如果你想了解安全模型相關知識,請轉至

www.infoq.com/cn/articles…


二、Why.

什麼情況下需要我們設定訪問許可權?

​ 當在Linux系統中開發或部署管理專案時,需要設定相關的許可權來與別人共享檔案、來讓外界訪問檢視等,以避免洩露重要資訊、被誤刪或更改重要檔案等。


三、How.

如何檢視檔案或目錄的許可權?

​ 通過“ls -l”命令即可檢視當前目錄下的檔案或目錄的許可權,"ls -l fileName "檢視名為“fileName”的檔案或目錄的許可權。命令執行結果的第一個欄位表示許可權,總共10位,例如:

-rwxr-xr-x複製程式碼
  • 第1位:表示檔案型別,-表示檔案,d表示目錄
  • 2-4位:表示檔案所有者的許可權,u許可權
  • 5-7位:表示檔案所有者所屬組成員的許可權,g許可權
  • 8-10位:表示所有者所屬組之外的使用者的許可權,o許可權
  • 2-10位:許可權總和有時稱為a許可權

如何修改檔案或目錄的許可權?

1、通過數字表示法修改許可權

​ 數字表示法:將x、w、r分別用1、2、4來代表授予許可權,沒有授予則為0。例如:

原始許可權 轉換為數字 數字表示法 代表意義
rwx--xr-x (421)(001)(401) 715 7:4+2+1,1:0+0+1,5:4+0+1

​ 通過“chmod num fileName”將名為“fileName”的檔案或目錄的許可權修改為“num”數字代表的許可權,例如:

chmod 777 test複製程式碼

表示將test檔案授予“rwxrwxrwx”許可權,即對檔案所有者、所有者所屬組的成員和組之外的成員,都具有可讀、可寫和可執行的許可權。

chmod 777 /test/*複製程式碼

表示將根目錄下的test目錄下的所有檔案授予“rwxrwxrwx”許可權,即對檔案所有者、所有者所屬組的成員和組之外的成員,都具有可讀、可寫和可執行的許可權。

2、通過文字表示法修改許可權

​ 文字表示法:將2-4位(所有者)、5-7位(組成員)、8-10位(其他成員)、2-10位(所有人)四類使用者分別用u、g、o、a來代表,許可權仍用r、w、x表示,通過=、-、+分別表示對指定使用者群重新制定新許可權、設定減少許可權、設定增加許可權。

​ 通過“chmod text fileName”對名為“fileName”的檔案或目錄的許可權執行“text”文字代表的許可權操作,例如:

chmod u+x,g-x,o=x test複製程式碼

表示對test檔案的所有者加上執行許可權,組成員減少執行許可權,其他成員設定為執行許可權。

chmod u+x,g-x,o=x /test/*複製程式碼

表示對根目錄下的test目錄下的所有檔案的所有者加上執行許可權,組成員減少執行許可權,其他成員設定為執行許可權。

3、設定檔案或目錄新建時的預設許可權

> 通過設定預設許可權,避免新建檔案或目錄時許可權過大或過小。複製程式碼

​ 通過設定4個八進位制數字的許可權掩碼來控制預設許可權,一般來說,新建檔案的預設許可權是0666,新建目錄的預設值是0777。如果將許可權掩碼設定為0022,則每個新建檔案的預設許可權為0666-0022=0644,而目錄的預設許可權則為755。

​ 通過“umask”檢視當前的許可權掩碼,通過"umask num"將許可權掩碼改為"num",例如:

umask 0002複製程式碼

表示將許可權掩碼設為“0002”,則再新建檔案或目錄的話,則檔案的預設許可權變為:0666-0002=0664,則目錄的預設許可權變為:0777-0002=0775 。

相關文章