Linux系統文件權限體系詳解
準備工作:先簡單了解Linux文件權限
在Linux系統中,ls -l 命令可以查看文件的權限,如
[[email protected] Test]$ ls -l a
-rw-rw-r--. 1 zhaohuizhen zhaohuizhen 121 Oct 14 20:26 a
文件a權限就在第一列,第一位-,代表文件a時普通文件。後面9為就是文件權限,rw-rw-r--,前三位對應文件屬主權限,中間三位代表屬組權限,最後三位代表其它用戶權限。
r 讀權限 w寫權限 x執行權限 -無任何權限。
1)改變權限屬性命令chmod
chmod可以用來改變文件或目錄權限的命令,但只有文件的屬主和超級用戶root才有這種權限。通過chmod改變文件或目錄的權限有兩種辦法:一是通過權限字母和操作符表達式的方法來設置權限;另一種是通過使用數字方法來設置權限。
a 數字權限法
chmod [數字組合] 文件名
-R 可以改變某個目錄下所有文件的屬性
4 讀 2 寫 1 執行 0 無權限
b 字符式文件表示法
u 屬主 g 屬組 o 其它用戶
+ 增加 - 減去 = 設置
r 讀 w 寫 x 執行
2)改變文件所屬關系命令chown
當我們要改變一個文件的屬組,我們使用的用戶必須是文件的屬組而且同時是目標屬組的成員,或超級用戶。只有超級用戶才能改變文件的屬主。
chown 語法:
chown [選項] [所有者][:[組]] 文件 #:可以被.代替
用chgrp 可以改變文件屬組
總結測試:Linux普通文件的讀寫執行權限說明
可讀r:表示具有讀取文件內容的權限
可寫w:表示具有修改文件內容的權限
(特別提示:刪除文件,修改文件名,新建文件的權限是受父目錄權限控制,和文件本身權限無關)
可執行x:表示具有執行文件的權限(文件本身能夠執行,普通用戶同時還需具備r的權限,root權限也能執行,當然文件本身也需要能夠執行。)
總結測試:Linux目錄的讀寫執行權限說明
可讀r:表示具有瀏覽目錄下面文件及目錄的權限,即ls dir。(不能進入目錄裏,即無法cd dir,如果沒有x權限,列表時也有問題,ls -l dir列表屬性會有問號,提示沒有權限。)
可寫w:表示具有增加,刪除,或修改目錄內文件名的權限(需要x權限配合)
可執行x:表示具有進入目錄的權限;例如 cd dir。
Linux文件與目錄權限對比說明:
r(read,讀權限):
對文件而言,表示具有讀取文件內容的權限。
對目錄來說,表示具有瀏覽目錄的權限(註意,與進入目錄的權限不同),要x權限配合。
x(execute,執行權限):
對文件而言,表示具有執行文件權限。對於可執行腳本文件,普通用戶還需要r權限配合,root用戶無需r權限;對於可執行程序,則無需r權限配合。
對目錄來說,表示具有進入目錄的權限。
-(無任何權限)
若對應位為”-“,表示無任何權限。
特別註意:
當刪除或移動一個文件或目錄,僅與該文件與目錄所在的上一層目錄權限有關,與該文件本身屬性沒有任何關系。對於文件來說,寫文件是修改文件,而不是刪除文件,因此寫文件是與該文件的本身 屬性有關的。
默認權限分配的命令umask
工作中,一般默認權限,對目錄是755,對文件是644。這是相對安全的權限。工作中盡量讓我們的文件和目錄達到以上默認權限。
Linux系統中,文件的默認權限是由umask確定的。創建文件時,默認最大權限是666,創建文目錄最大權限是777,然後根據umask值,屏蔽對應權限。在/etc/login.defs文件中可以查看umask在不同目錄下的默認權限值。對家目錄,默認權限umask 077.
改變文件及目錄的默認權限:
umask 022 022
設置用戶ID位:用s表示。
1)用戶對應的前三位的x位上如果有,就用小s表示suid。當x位上沒有x的時候,suid就是大寫的S。
2)設置用戶ID位就是讓普通用戶可以以root或其他用戶的權限運行只有root或其它用戶才能運行的程序或命令,或程序命令對應本來沒有權限操作的文件等。
例如:如果要讓boy用戶刪除本來無權刪除的文件。
a sudo
b suid(suid修改的執行的命令,而不是要處理的文件)
3)僅對二進制命令程序有效,不能用在shell等類似腳本文件上。shell腳本僅僅是調用二進制命令程序而已,因此,具體權限還需要看二進制命令本身。
4)二進制命令程序需要有可執行權限x
5)suid權限僅在程序執行過程中有效。
6)執行命令的任意用戶可以獲得該命令程序執行期間擁有這的權限。
7)suid是雙刃劍,是一個比較危險的功能,對系統安全有一定的威脅。
Linux系統文件權限體系詳解