原創作品,轉載請注明出處: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文件
