Linux最優秀的地方之一,就在於它的多用戶、多任務環境。每個用戶都有自己較爲保密的文件數據,爲此文件的權限管理就變得很重要。Linux一般將文件可存取訪問的身份分爲:owner、group、others,文件權限分爲:read、write、execute.
一、用戶與用戶組
“用戶與用戶組”的功能是爲linux多用戶、多任務的環境提供健全又好用的安全防護。
1、文件所有者(owner)
在Linux系統中常常會有很多人同時使用同一臺主機進行工作。爲了考慮每個人的隱私權以及每個人喜好的工作環境,文件所有者這個角色就顯得特別重要。owner通常爲文件的創建者,文件相當於自己的“私人空間”,可以把文件設置成只有owner可查看與修改這個文件的內容,其他用戶無法知道該文件的內容。
2、用戶組(group)
多個用戶加入一個團隊成爲用戶組。用戶組最有用的功能之一就是用於團隊的合作開發,同組的用戶可以修改公共的文件數據,其他組的組員不能看到本組的文件內容。可以通過文件權限設置限制非團隊組員閱覽文件內容,同組團隊用戶可修改自己創建的文件數據。同時,若有隱私文件也可以設置同組成員看不到。注:每個賬號可以有多個用戶組的支持,即同一用戶可以加入多個用戶組。
3、其他人(other)
不是文件所有者也不屬於文件的用戶組,就是其他人。
4、超級用戶(root)
root是系統中唯一的超級用戶,具有系統中所有的權限。如啓動或停止一個進程,ADSL撥號,刪除或增加用戶,增加或者禁用硬件等等。注意:建議初學者不要輕易使用root權限,容易因錯誤操作導致系統癱瘓。
二、用戶與用戶組記錄的文件
在Linux的系統中,默認情況下所有系統上的賬號(包括一般身份用戶和root用戶的相關信息)都記錄在/etc/passwd文件內,密碼信息記錄在/etc/shadow文件內,所有的組名記錄在/etc/group文件內。所以不能隨意刪除這三個文件。
三、文件屬性
對於上圖的七列信息,我們將依次進行詳細的講解。(月、日和具體時間看成一列)
第一列包含10個字符,代表文件的類型和權限。第一個字符代表文件類型(具體參考上一篇博客),接下來的字符每3個一組,共有三組,均爲“rwx”參數的組合。其中r代表可讀,w代表可寫,x代表可執行,三個權限的位置固定,若沒有相應權限會用“-”表示。比如文件SSD的第一列爲[-rw-rw-r--],說明SSD是一個目錄文件,owner的權限是可讀可寫,所屬用戶組的權限是可讀可寫,其他人只有可讀權限。
- 第一組爲“文件所有者權限”
- 第二組爲“同用戶組的權限”
- 第三組爲“其他非本用戶組的權限”
第二列表示連接到該文件節點的個數。在Linux系統中,每個文件名都會連接到一個i-node,該屬性記錄的就是有多少不同的文件名連接到相同的一個i-node。
第三列表示文件所有者的名稱
第四列表示文件所屬用戶組的名稱
第五列表示文件容量的大小,默認單位是B
第六列表示文件創建時間或者最近修改的時間(包含三列,分別代表月/日/具體時間)
第七列表示文件名
四、如何改變文件屬性和權限
- chmod:改變文件的權限
- chown:改變文件所有者
- chgrp:改變文件所屬用戶組
1、chmod的用法
作用:修改文件權限,方法有兩種:分別可以使用數字或者符號來進行文件權限的設置。
- 數字類型改變文件權限
r=4,w=2,x=1
每種身份(owner、group、other)分別用字母u、g、o表示,其權限需要各自的[rwx]對應分數累加。比如文件SSD的第一列爲[-rw-rw-r--],其對應權限的數字表示如下:
u=rw-=4+2+0=6,g=rw-=4+2+0=6,o=r--=4+0+0=4,故該文件權限的數字表示爲664。
格式:chmod [-R] xyz 文件或者目錄
參數:
-R:進行遞歸的更改,即連同子目錄下的所有文件都會更改權限。
xyz:數字類型的權限屬性,爲rwx相應屬性的數值相加。
舉例:
- 符號類型改變文件權限
chmod |
u(文件所有者) g(所屬組) o(其他人) a(所有用戶) |
+(增加權限) -(減去權限) =(設置權限) |
r(可讀權限) w(可寫權限) x(可執行權限)
|
文件或者目錄 |
舉例:
2、chown的用法
作用:change owner 改變文件所有者,需注意的是,用戶必須是已經存在於系統的賬號(在/etc/passwd文件中有記錄的用戶)。
格式:chown [-R] 賬號名稱 文件或者目錄
參數:
-R:同上
3、chgrp的用法
作用:change group 改變用戶組。
格式:chgrp [-R] dirname/filename
參數:
-R:同上
舉例:
注意,要被改變的組名必須存在於/etc/group文件內,否則會顯示錯誤。