Linux系統中的檔案許可權

2021-10-03 06:27:18 字數 3223 閱讀 8127

linux系統將一切看做檔案(包括外部裝置都被看作為特殊檔案)的原則,使得檔案的屬性非常豐富。我們在文字命令列介面輸入指令ls -l,檔案便會以長列表的形式在螢幕上輸出,並列出檔案的一些基本屬性。如圖所示:

使用 ls -l 指令,以長列表的方式列出了使用者家目錄(~)下的一些檔案和目錄。每一行的資訊包含了檔案或目錄的一些基本屬性,大致可以將它們分為以下幾個部分:

①檔案型別

表示符檔案型別

-代表常規檔案,包括純文字檔案(ascii)、二進位制檔案(binary)以及程式執行過程中讀取的某些特定格式的檔案

d代表目錄(directory)

l代表鏈結檔案

c代表字元型裝置檔案,比如鍵盤、滑鼠等一些串列埠的介面裝置

b代表塊裝置檔案,比如硬碟等一些儲存資料,以提供系統訪問的介面裝置

s代表資料介面檔案(sockets),常被用在網路上作資料承接

p代表資料輸送檔案(fifo,pipo),可以用於完成無關程序間資料交換的任務。該檔案存在於檔案系統中,提供了一種比匿名管道更持久穩定的通訊方法

n代表網路裝置檔案

②檔案許可權

每個檔案都有9個檔案許可權符,三個一組,分別代表檔案屬主對檔案擁有的許可權、檔案屬組中其他使用者對該檔案擁有的許可權和系統中其他使用者對檔案擁有的許可權。檔案許可權符有r、w、x三種,如果屬主、屬組和其他使用者沒有某一許可權,對應的許可權符號會被短橫(-)替代。

·對於檔案

許可權符許可權符含義

r代表檔案是可讀的

w代表檔案是可寫的

x代表檔案是可被執行的

·對於目錄

許可權符許可權符含義

r表示可以讀取目錄中內容的許可權,可以使用ls指令將該目錄中的內容列表進行顯示

w表示具有改動該目錄中內容的許可權,即:建立新的檔案或目錄;刪除已經存在的檔案或目錄(不論屬主是誰,都可以刪除);將已存在的檔案與目錄更名;轉移該目錄下檔案或目錄的位置。

x表示具有進入目錄的許可權

③檔案的硬鏈結總數;

④檔案屬主的使用者名稱;

⑤檔案屬組的組名;

⑥檔案的大小,以位元組為單位;

⑦檔案建立時間或最近修改的時間;

⑧檔名或者目錄名稱;

從之前建立檔案的經歷來看,似乎不了解許可權對於建立新的檔案也沒有多大的影響。我們雖然沒有進行許可權設定,但仔細觀察的話會發現,建立出的檔案有一組預設的許可權。如圖所示:

可能會有所疑惑,我們沒有下達任何的許可權指令,但這些許可權是根據什麼設定的呢。其實,系統裡面有乙個許可權掩碼umask。我們在以預設方式建立檔案時,系統根據我們的umask來設定我們的檔案許可權。umask的預設值是0022,如圖所示:

要想具體了解我們所建立檔案的預設許可權和umask有什麼關係,就需要了解檔案許可權描述符r、w、x的權值設定。權值設定如下表所示:

權值二進位制值

八進位制值

描述---

0000

沒有任何許可權

--x001

1只有執行許可權

-w-010

2只有寫入許可權

-wx011

3有寫入和執行許可權

r--100

4只有讀取許可權

r-x101

5有讀取和執行許可權

rw-110

6有讀取和寫入許可權

rwx111

7有全部許可權

現在我們再來重現看一下系統中的許可權掩碼umask(0022)。它由四位數字組成,從左到右依次為:粘著位(sticky bit)、屬主許可權對應的八進位制值、屬組許可權對應的八進位制值和其他使用者許可權對應的八進位制值。對於檔案許可權設定,我們主要關注的是後三位,022代表的許可權為:----w–w-,掩碼umask就是在建立檔案時,從檔案的全許可權去掉022許可權。在linux系統中,文件的全許可權為666:rw-rw-rw-;目錄的全許可權為777:rwxrwxrwx。所以在建立檔案時預設的許可權就是,文件644:rw-r—r–;目錄為755:rwxr-xr-x。

當然,我們也可以自定義掩碼umask的值。umask的值通常會設定在啟動檔案/etc/profile或者檔案/etc/login.defs中。在文字控制介面也可以通過指令設定umask的值,如圖所示,可以看到所建立的檔案的預設許可權改變了。

修改已建立檔案的許可權有兩種方法:使用八進位制數字組對檔案進行許可權變更或使用許可權符對檔案許可權進行變更。

·使用八進位制數字組變更檔案許可權

synopsis:

chmod [-r] ### 檔案或目錄

options:

###:代表許可權的八進位制數字組

-r:對本目錄下的所有檔案和目錄許可權進行遞迴性地全部變更。

使用八進位制數字組變更檔案許可權的一些示例如圖所示:

·使用許可權符變更檔案許可權

synopsis:

chmod [ugoa] [±=] [rwxxstugo] 檔案或目錄

options:

第一組引數[ugoa]:u代表屬主;g代表屬組;o代表其他使用者;a代表所有使用者。

第二組引數[+ - =]:+代表在現有許可權上增加許可權;-代表在現有許可權上減少許可權;=代表將現有許可權設定成後面所跟許可權。

第三組引數[rwxxstugo]:r、w、x分表代表可讀、可寫、可執行;x代表可執行;u代表將許可權設定為與屬主相同;g代表將許可權設定為與屬組相同;o代表將許可權設定為與其他使用者相同。

使用許可權符變更檔案許可權的示例如圖所示:

Linux系統中的檔案許可權管理

1.檔案許可權的讀取 ls l filename 檢視檔案的屬性 mkdir dl dirname 檢視目錄的屬性 檔案元資料 1 檔案的型別 空檔案或者文字 d 目錄 l 軟鏈結 s socket 套接字 b block 塊裝置 c 字元裝置 2 此檔案許可權 3 表示檔案載入了安全上下文 4 硬...

Linux系統的檔案許可權

一般檔案的許可權格式 ls lh ls 紅色 檔案型別 普通檔案 d 目錄檔案 軟連線 c 字元裝置 b 塊檔案 灰色 表示檔案所有者的許可權 綠色 表示檔案所屬使用者所在組的許可權 藍色 表示其他組使用者擁有的許可權 數字 對於普通檔案和目錄檔案有不同的含義 普通檔案 硬鏈結個數 目錄檔案 該目錄...

Linux系統檔案許可權

1 改變許可權屬性命令 chmod chmod 是用來改變檔案或目錄許可權的命令,但只有檔案的屬主和超級使用者 root 才有這種許可權。通過 chmod 來改變檔案或目錄的許可權有兩種方法 一種是用過許可權字母和操作符表示式的方法來設定許可權 另一種是使用數字方法來設定許可權。2 chmod 數字...