Linux - 檔案許可權(未完)
阿新 • • 發佈:2018-12-25
檔案許可權說明
檔案許可權有四種:可讀、可寫、可執行、無
檔案許可權作用物件有三種:擁有者、使用者組使用者、其他使用者
擁有者
:檔案擁有者,預設情況下,誰建立的檔案擁有者就是誰,例如使用dev使用者建立的檔案則擁有者為dev使用者組使用者
:使用者組用於多人協作,每個使用者都會屬於一個使用者組,當權限作用在使用者組上時對使用者組內的所有使用者均生效。其他使用者
:非擁有者、非使用者組內使用者視為其他使用者。
檔案許可權的閱讀
通過ls -al
命令檢視當前目錄下的所有檔案和目錄,並列出詳細資訊,如圖:
第一欄
:檔案許可權屬性第二欄
:連結數(快捷方式數)第三欄
:擁有者使用者名稱第四欄
:使用者組名稱第五欄
:檔案大小第六欄
:最後修改日期或建立時間第七欄
:檔名稱
檔案許可權解讀如下:
例如:[email protected]
,將整串許可權屬性字串拆分成
[-]
[rwx]
[r--]
[r--]
[@]
- 第一處為檔案型別
-
:表示檔案
d
:表示目錄
c
:字元裝置,如鍵盤、滑鼠等
b
:塊裝置,如硬碟、光碟機等
l
:連結檔案
s
:套接字檔案 - 第二處為擁有者許可權
其中r
表示可讀,w
表示可寫,x
表示可執行。以上擁有者許可權則為可讀可寫可執行。 - 第三處為使用者組許可權
其中r
表示可讀,-
表示無。以上使用者組使用者許可權則為可讀。 - 第四處則為其他使用者許可權
其中r
表示可讀,-
表示無。以上其他使用者許可權則為可讀。 第五處?請指點!!!
以上需要注意的是,讀、寫、執行三個許可權始終按照這樣的順序排列,如果沒有對應的許可權則使用-
來代替。
檔案許可權的修改
-
修改檔案許可權
一、字元修改
字元修改的基本思路是告訴系統程式誰
要增加、刪除、修改
什麼許可權
。這裡的“誰”就是許可權作用物件,所以首先需要知道檔案許可權作用物件如何表達:擁有者為u
(即user),使用者組使用者為g
(即group),其他使用者為o
(即other),全部則為a
chmod程式
來完成檔案許可權的修改。那麼修改檔案許可權則可以通過chmod <作用物件><+ | - | =><許可權> <檔名稱>
來完成,如:
A. 修改1.txt擁有者許可權為可讀可寫可執行:chmod u+rwx 1.txt
B. 取消1.txt擁有者可寫許可權:chmod u-w 1.txt
C. 設定1.txt擁有者許可權為可讀:chmod u=r 1.txt
D. 設定1.txt使用者組許可權為可讀可執行:chmod g=rx 1.txt
E. 取消1.txt使用者組可寫許可權:chmod g-w 1.txt
F. 設定1.txt其他使用者許可權為不可讀不可寫不可執行:chmod o=-
優勢
:可以看出,通過字元修改只需要關注我們需要為什麼物件改變什麼許可權,而不需要關注它原本具備什麼許可權,更不需要關心別的許可權作用物件具備什麼許可權。(個人觀點)
二、數字修改
數字修改的基本思路是通過一個數字來表達三個許可權,建立在如何讓三個數字混合後得到的數字是唯一的數學問題上,很慶幸這個問題不是太難。檔案許可權對應的數字分別為:可讀4
,可寫2
,可執行1
。為什麼不是3,2,1?因為如果給定一個許可權數3,沒法確定是[可讀3]還是[可寫2+可執行1]許可權。那麼修改檔案許可權則可以通過chmod <擁有者許可權數><使用者組許可權數><其他使用者許可權數> <檔名稱>
來完成,如:
A. 修改1.txt擁有者、使用者組使用者、其他使用者許可權為可讀可寫可執行:chmod 777 1.txt
,7=4+2+1表示可讀可寫可執行。
B. 修改1.txt擁有者許可權為可讀可寫可執行、使用者組使用者許可權為可讀、其他使用者許可權為可讀可執行:chmod 745 1.txt
C. 修改1.txt擁有者許可權為可讀可寫、使用者組許可權為可寫、其它使用者沒有許可權:chmod 620 1.txt
探究
:chmod 7 1.txt
chmod 77 1.txt
,許可權數不夠三位的表達:作用物件從後到前,例如第一句命令表示擁有者和使用者組使用者均無許可權,其他使用者擁有可讀可寫可執行許可權。第二句命令表示擁有者無許可權,使用者組使用者和其他使用者擁有可讀可寫可執行許可權。
優勢
:命令更簡潔,如果我們需要同時設定各個物件許可權,使用起來比較方便,但沒有字元修改那麼靈活(個人觀點) -
修改檔案所屬使用者組
chgrp <組名> <檔名>
例:chgrp test01 1.txt
注意
:如果組名不存在,將會出現chgrp: invalid group: 'test01'
,此時可以通過groupadd test01
新增使用者組,不需要的時候再通過groupdel test01
刪除使用者組。
思考
:如果設定1.txt的使用者組為test01後刪除test01。那麼1.txt的使用者組會變成什麼?
經過實踐,建立使用者組時會給使用者組產生一個數字標識,當組被刪除後,檔案使用者組部分會變成這個數字標識。如果新建了使用者組得到同樣的標識,那麼檔案使用者組部分會變成新建的使用者組名稱。 -
修改擁有者
(未完待續)