Linux檔案目錄屬性及許可權詳解

2021-09-25 01:18:18 字數 4107 閱讀 7072

檔案許可權的概念

普通檔案屬性及許可權

2.1 檢視檔案屬性

2.2 修改檔案屬性及許可權

檔案及目錄許可權的意義

3.1 許可權對於檔案的意義

3.2 許可權對於目錄的意義

3.3 案例(摘自鳥哥的私房菜)

檔案與目錄的預設許可權和隱藏屬性

4.1 檔案預設許可權

4.2 檔案隱藏屬性

大家在使用linux時,肯定碰到過比如想修改某個檔案,進入某個目錄,卻出現了permission deny的錯誤,這是因為在linux中,每個檔案或者目錄都包含訪問許可權,這些訪問許可權記錄和決定了哪些使用者能夠訪問以及如何訪問這些檔案和目錄,這就是linux的檔案許可權的概念。

在平時使用linux系統中,我們最常用的命令就是「ls」,它的重點在於顯示檔案的檔名和相關屬性,當附加-al引數時,可以檢視到所有具體的檔案屬性,例如,如下圖:

(1)第一欄:檔案型別與許可權

仔細檢視可以可以發現,第一欄「dr-xr-xr-x」總共有十個字元,下面對這十個字元做簡單的介紹。

1)第1個字元:檔案型別,比如這裡顯示是d,說明是目錄,事實上可以是l:鏈結檔案,c:字元檔案,-:普通檔案,b:塊裝置檔案等等。

2)第2至4字元(r-x):檔案擁有者許可權,其中,r表示可讀(read),w表示可寫(write),x表示可執行許可權。而如果沒有許可權,則出現**-,比如此處,沒有出現w**,說明檔案所有者不具備寫許可權。

3)第5至7字元(r-x): 所屬組許可權,表示該檔案所屬組的使用者的組許可權,許可權說明同上。

4)第8至10字元(r-x): 其他使用者許可權,即非本人且沒有加入本使用者組的其他賬號的許可權,許可權說明同上。

(2)第二欄:檔名鏈結數

每個檔案都會將它的許可權與屬性記錄在檔案系統的inode中,作業系統就是根據inode號來識別不同的檔案(可以採用「ls -i filename」檢視)。每個檔案都會有乙個inode,但是在linux系統允許多個檔名指向同乙個inode,這意味著可以用不同的檔名訪問同樣的內容,對檔案內容修改會影響所有檔名,並且刪除乙個檔名,不影響檔名的訪問,這就是linux中的硬鏈結機制。

回到正文,這欄的屬性記錄的就是多少不同的檔名鏈結到相同的乙個inode號碼。

(3)第三欄:檔案所有者賬號

(4)第四欄:檔案的所屬使用者組

(5)第五欄:檔案容量的大小,預設為bytes

(6)第六欄:檔案建立日期或最近修改日期

這一欄分別為日期(月、日)及時間,如果時間太久,那麼可能僅會顯示年份資訊。

(7)第七欄:檔名

比較值得一提的是,如果檔名前多乙個*.*,比如上圖的「.readhead」檔案,表示此檔案是隱藏檔案。可以使用ls和ls -a感受下隱藏檔案與普通檔案的區別。

另外不曉得大家有沒有注意,目錄…與目錄.**的許可權是一樣,實驗證明,根目錄的上一層與根目錄自己是同乙個目錄,其許可權和目錄屬性完全一致。

(1)chgrp:修改檔案所屬組

chgrp即change group的意思,但是需要注意,修改後的所屬組,必須是事先存在於「/etc/group」檔案中,否則無法完成修改。另外,其執行命令的格式為:

chgrp users [-r] dirname/filename

-r 引數表示遞迴地修改組屬性,表示連同目錄及其下屬檔案和目錄都進行更新成為此使用者組。

(2)chown:修改檔案的所有者

chown即change owner的意思,需要注意,使用者必須存在於「/etc/passwd」,否則無法生效。chown甚至可以順帶把使用者組名稱改了,也可以連帶目錄下的所有子目錄或檔案同時更改檔案擁有者。其語法如下:

chown [-r] 所有者名稱 檔案或目錄

chown [-r] 所有者名稱:使用者組名稱 檔案或目錄

(3)chmod:修改檔案許可權

1)數字型別修改法:

linux檔案的基本許可權有9個,分別是擁有者,所屬組,其他人,三種身份各有「讀、寫、執行」三種許可權。linux使用了數字來代表各個許可權:

r:4w:2

x:1其中每種身份的最終許可權是需要累加的,比如當許可權為「-rwxr-xr-x」表示成數字則是

owner: 4+2+1=7,

group: 4+1=5,

others: 4+1 =5

這表示該檔案的許可權數字為「755」,而修改許可權的命令語法為:

chmod [-r] xyz dir/filename,其中xyz就是許可權數字,dir/filename表示檔案或者目錄名。

2)符號型別修改法:

我們把上述的九個許可權分別是 user,group,others三種身份,藉由u、g、o來代表,採用a表示所有許可權,其餘的r、w、x分別代表讀、寫、執行許可權。使用如下表的方法

命令身份許可權操作許可權操作物件

chmodug

oa+(加入)

-(移除)

=(設定)rw

x檔案或目錄

比如我們要對乙個檔案許可權為「-rwxr-xr–」修改為「-rwxrwxr-x」,則需要對使用者組身份的許可權追加w許可權,對其他使用者追加x 許可權,所以這樣執行:   chmod g+w, o+x filename 或者 chmod g=rwx, o=rx filename我們知道,在linux系統中,一切硬體裝置等都視為檔案,而目錄是一種特殊的檔案,r/w/x各項許可權對於其意義在於:

r: 可查詢此目錄下檔名資料,比如ls命令。

w: 可以建立新目錄/刪除已存在目錄/修改已存在的目錄(名稱,移動其位置)。(目錄的最高許可權,一般不隨意給出該許可權)

x: 具有執行的許可權,簡單地說,就是可以將該目錄轉換成家目錄的能力,比如cd 命令。注意,x許可權對於目錄是極其重要的,如果沒有該目錄,表示你不能切換到該目錄,更不能對其子目錄或者檔案進行操作,即使你有「r/w」許可權。

操作/dir1

/dir/file1

/dir2

重點讀取file1內容xr

-比如進入/dir1才能讀取到裡面的檔案資料

修改file1的內容xrw

-能進入/dir1且修改file1才行

執行file1的內容xrx

-能進入dir1且能執行file1才行

刪除file1檔案wx-

-能夠進入/dir1並具有目錄修改的許可權即可

將file1複製到dir2xr

wx能夠讀file1且能修改/dir2內的資料

讀取file1內容 x r - 比如進入/dir1才能讀取到裡面的檔案資料

修改file1的內容 x rw - 能進入/dir1且修改file1才行

執行file1的內容 x rx - 能進入dir1且能執行file1才行

刪除file1檔案 wx - - 能夠進入/dir1並具有目錄修改的許可權即可

將file1複製到dir2 x r wx 能夠讀file1且能修改/dir2內的資料

上表列出了對於/dir1、/dir1/file1、/dir2這三個檔案,完成上述操作所需的最小許可權,我們可以發現對於dir1多數情況都必須有x許可權。

檔案的預設許可權是通過umask值來設定的,注意這不是systemctl unmask firewalld.service中的unmask,linux會對新建的目錄和檔案設定乙個最原始的許可權值,這跟umask有關,在終端執行:umask或者 umask -s可以檢視,比如:

這表示umask的值0022代表的就是「u=rwx, g=rx,o=rx」,這是怎麼對應的呢,預設情況下:

(1)chattr(配置檔案屬性)

語法:chattr [±=] [選項] filename/dir

[選項]可以是多個,可以通過–help檢視具體選項的含義,filename/dir是檔名或者目錄。

(2)lsattr [選項] filename/dir

[選項]可以是多個,可以通過–help檢視具體選項的含義,filename/dir是檔名或者目錄。

原文:

Linux檔案和目錄的屬性及許可權總結

ls 命令是linux系統中最常用的命令之一。ls 命令將每個由 directory 引數指定的目錄或者每個由 file 引數指定的名稱寫到標準輸出,以及您所要求的和標誌一起的其它資訊。如果不指定 file 或 directory 引數,ls 命令顯示當前目錄的內容。選項與引數 a 全部的檔案,連同...

Linux檔案 目錄許可權及歸屬

讀寫執行 讀寫執行讀 寫執行rw xrwx rwx檔案所有者 檔案所屬組 其他使用者 r 讀 w 寫 x 可執行 檢視內容cat 修改內容vi 作為命令使用 列出目錄內容ls 新增 刪除 touch rm 進入資料夾或搜尋 cd ugoa rwx 檔案或目錄 遞迴修改指定目錄下所有檔案 子目錄的許可...

Linux檔案許可權及目錄管理

linux檔案許可權 linux檔案目錄管理 當前工作目錄 上層目錄 根目錄 當前家目錄 上個工作目錄 account使用者家目錄 account變換目錄 cd 路徑 顯示當前工作目錄 pwd 建立空目錄 mkdir pm 遞迴,許可權 目錄名 刪除空目錄 rmdir p 遞迴 檔案與目錄檢視 ls...