Linux檔案屬性及許可權
原創作品,轉載請註明出處: ofollow,noindex">https://www.cnblogs.com/shrimp-can/p/10039288.html
在Linux中,一個十分重要的內容就是檔案許可權。
一、檔案存取訪問身份
Linux的優秀之處在於她的多使用者多工環境,為了方便檔案的管理,有三種檔案存取訪問身份,分別是:使用者、使用者組、其他
二、檔案屬性
我們在用ls列舉出當前工作目錄下的檔案時,顯示的只是檔案或目錄名,要想顯示屬性,使用ls -l,要列舉出隱藏檔案,使用ls -al。
下圖是我列舉出的桌面下的部分檔案及其屬性的顯示。
第一列為10個字元,代表這個檔案的型別和許可權。在下面會重點介紹。
第二列是一個數字,表示有多少檔名連結到此節點。(Linux的目錄樹是使用檔名來記錄的)
第三列表示這個檔案的所有者賬號。
第四列表示這個檔案的所屬組賬號。
第五列的數字代表這個檔案的大小,單位是Byte。
第六列是這個檔案的建立日期或者最近修改日期。
最後列是檔名,如果檔名前多個‘.’,代表這個檔案是隱藏檔案。
三、檔案屬性的更改
1.改變檔案所有者chown
chown [-R] 賬號名稱 檔案或目錄
要更改目錄下所有子目錄或檔案的所有者,加上-R引數,代表進行遞迴更改。
例1: 將install.log檔案的所有者改為bin
chown bin install.log
2.改變檔案所屬使用者組chgrp
chgrp [-R] 使用者組 檔案或目錄
要更改目錄下所有子目錄或檔案的所有者,加上-R引數,代表進行遞迴更改。
注意: 使用者組的名字必須要存於/etc/group中,不然不能更改成功
例2: 將檔案install.log的所屬使用者組改為users
chgrp users install.log
3.檔案屬性需要修改的常見場景
我們複製檔案時,如使用cp
cp 原始檔 目標檔案
複製後的目標檔案與原始檔會具有相同的屬性和許可權,如將檔案傳給bin,若檔案中對其他人只有讀的許可權,那麼bin就不能對檔案進行修改等操作,因此需要修改檔案所有者和使用者組
四、檔案許可權
在Linux中,使用者對檔案有三種訪問許可權:read、write、excute
在檔案屬性中,第一列代表檔案型別和許可權。其中,第一個字元代表檔案的型別,Linux中的檔案型別表示後面會介紹。接下來的字元中,每3個為一組
第一組為檔案所有者的許可權,第二組為所屬使用者組許可權,第三組為其他人的許可權。
1.檔案許可權含義
檔案許可權三個為一組,均為“rwx”三個引數的組合
r:read代表可讀
w:write代表可寫
x:execute代表可執行
這個三個許可權的位置不會發生改變,如果沒有該許可權,就用-替代。
例3: -rwxr-xr--
-:表示檔案型別,-表示這是一個檔案
rwx:所有者的許可權,可讀、可寫、可執行
r-x:所屬使用者組的許可權,可讀、可執行
r--:其他使用者的許可權,可讀
2.檔案許可權的數字表示
三個許可權的位置不會改變,可以使用數字來代表各個許可權
r:4
w:2
x:1
每種身份的許可權為這三個許可權的和
例4: -rwxr-xr--
所有者許可權為:4+2+1=7
使用者組許可權為:4+1=5
其他人的許可權為:4
所以該檔案許可權為754
3.檔案許可權的修改chmod
1.數字型別的修改
chmod [-R] number 檔案或目錄
-R:進行遞迴修改,連同子目錄下的所有檔案都會更改
例5: 將.bashrc這個檔案的許可權改為-rw-r--r--
chmod 644 ./bashrc
2.字元型別的修改
有user、group、others三種身份,用u、g、o來代表,a代表全部的身份
chmod | u g o a |
+ - = |
r w x |
檔案或目錄 |
例6: 設定檔案./bashrc的許可權為-rwxr-xr-x
chmod u=rwx,go=rx ./bashrc
例7: 增加./bashrc這個檔案的每個人均可寫入的許可權
chmod a+w ./bshrc
例8: 去掉./bashrc這個檔案的每個人均可寫入的許可權
chmod a-w ./bashrc
4.目錄與檔案的許可權意義
1 檔案的許可權意義
r:可讀取檔案的內容
w:可以編輯、增加或修改檔案的內容
注意: 不能刪除該檔案
x:該檔案有被系統執行的許可權
在Windows下一個檔案是否具有執行能力是通過副檔名來判斷的,如.exe, .bat, .com等,Linux下是由是否具有x許可權來決定的,與檔名沒有絕對關係
2 目錄的許可權意義
r:可以讀取目錄結果列表,即可以查詢該目錄下的檔名資料,利用ls將該目錄的內容列表顯示出來
w:可以更改目錄結果列表包括:
a:信件檔案與目錄
b:刪除以及存在的檔案與目錄(不管該檔案的許可權為何)
c:將以存在的檔案或目錄重新命名
d:轉移目錄內的檔案、目錄位置
x:使用者可以進入該目錄成為工作目錄
例9: 有個目錄許可權如下:drwxr--r--,系統有個賬號叫vbird,但是這個賬號並沒有支援使用者組,請問vbird對這個目錄有何許可權,是否可切換到此目錄中
vbird對此目錄只有r許可權,因為沒有x許可權,所以不能切換到此目錄內
例10: 有個賬號dmtsai,他的主資料夾在/home/dmtsai,dmt對此目錄有rwx許可權,若此目錄下有個the_root.data的檔案,許可權為:-rwx------,dmtsai對此檔案的許可權是什麼,可否刪除此檔案
dmtsai對此檔案來說是others身份,沒有任何許可權。這個檔案在他的主資料夾下,他對主資料夾有rwx的許可權,所以他可以刪除此檔案
五、檔案種類以及其屬性表示
-:一般檔案
d:目錄檔案
l:連結檔案
b:塊裝置檔案,即一些儲存資料以提供系統隨機訪問的介面裝置,如硬碟、軟盤等
c:字元裝置檔案,即一些串列埠的介面裝置,如滑鼠、鍵盤等
s:套接字,資料介面檔案,通常被用在網路上的資料傳輸
p:FIFO檔案