【我的Linux,我做主!】Linux權限管理詳解

(1)瞭解文件所有者所屬組的概念及修改
假設Tom現在有一個kindle在使用,他買了後說:“不僅我可以使用,我們班的所有同學如果需要也可以找我來使用,但是除了我們班級之外的其他人都不能使用”。在此kindle的屬主user就是Tom,kindle的屬組group就是Tom所在的班級,其他人other都不能使用這個kindle。所以對文件設置權限,就是對對應的u,g,o進行相關設置。
【我的Linux,我做主!】Linux權限管理詳解
文件屬性信息的含義如下(圖1-2):
【我的Linux,我做主!】Linux權限管理詳解
修改aa.txt文件的屬主和屬組信息(圖1-3):
# chown root.users aa.txt
# chown .jerry aa.txt
【我的Linux,我做主!】Linux權限管理詳解
修改目錄的屬主信息並不會改變目錄內部文件的屬主信息(圖1-4):
# chown jerry books/
【我的Linux,我做主!】Linux權限管理詳解
如果需要修改目錄的屬主和屬組的時候同樣也能夠改變目錄中文件的屬主和屬組信息,則可以加上-R選項:
# chown -R jerry books/
如果想單獨改變所屬組的信息,可以使用chgrp(圖1-5):
【我的Linux,我做主!】Linux權限管理詳解


(2)瞭解用戶權限及修改權限
【我的Linux,我做主!】Linux權限管理詳解
其中第一個表示的是文件類型(圖1-6):
【d】表示的是目錄;
【-】表示的是普通文件,文本文件,二進制文件;
【l】表示的是軟鏈接,快捷方式;
【b】表示設備文件,塊文件,裝置文件裏面的可供存儲的接口設備
【c】表示的是設備文件,字符文件,裝置裏面的串行端口設備,不可以存儲東西,例如鍵盤,鼠標。
【我的Linux,我做主!】Linux權限管理詳解
九個字符的位置表示權限(圖1-7):
r:可讀(用數字4表示)
w:可寫(用數字2表示)
x:可執行(用數字1表示)
------文件:運行這個文件的時候,是否有權限運行這個文件裏的命令
------目錄:在系統中是否有權限(cd)進入到目錄中
所以在圖1-7中:
u=r+w+x------->7=4+2+1
g=r+(-)+x------>5=4+0+1
o=r+(-)+(-)---->4=4+0+0
如果文件的權限不符合我們的要求,我們可以使用chmod修改文件的權限(圖1-8):
【我的Linux,我做主!】Linux權限管理詳解


(3)瞭解默認權限
我們創建了文件和目錄,其中aa、bb、cc三個文件的權限爲644,其中11、22、33三個目錄的權限爲755。(圖1-9)
【我的Linux,我做主!】Linux權限管理詳解
而系統默認的遮罩碼umask爲:0022,其中最後三位有用,系統默認創建的文件權限爲:666,系統默認創建的目錄權限爲:777。似乎可以理解爲當前系統文件權限是666-022的結果得到644,當前系統目錄的權限是777-022得到的結果是755。
【我的Linux,我做主!】Linux權限管理詳解
現在我們將遮罩碼umask值設置爲:0033,發現之前的理解並不完全正確,當前系統的目錄權限是777-033得到的結果是744,但是當前系統文件的權限並不是666-033得到633,而實際爲644。是由於計算目錄的權限前需要將umask裏所有的奇數減1。(如圖1-11和圖1-12)
【我的Linux,我做主!】Linux權限管理詳解
【我的Linux,我做主!】Linux權限管理詳解
現在反過來看,我們求umask的數值,如果創建文件的時候默認的權限爲444,請問umask應該設置爲多少?
【我的Linux,我做主!】Linux權限管理詳解


(4)瞭解一些特殊權限
(4.1)首先大家有沒有思考過這樣的問題,就是一個普通用戶user爲何能通過passwd修改自己的用戶密碼,而我們知道用戶密碼都是加密後存放在/etc/shadow中的,查看一下該文件的權限,如下:
【我的Linux,我做主!】Linux權限管理詳解
發現該文件中的user作爲other用戶不可能修改文件的內容,但是爲什麼user能夠修改自己密碼並且存入/etc/shadow中呢?
【我的Linux,我做主!】Linux權限管理詳解
首先是suid,特殊權限表示爲s,作用在可執行文件的文件所有者owner上面,該權限表示任何擁有該文件權限的人,在執行的過程時都臨時擁有該文件屬主的權限。因爲在文件所有者中有特殊權限s,所以在普通用戶修改自己密碼時,是通過臨時獲取了root的權限,然後才能修改密碼並且存入到/etc/shadow中。
【我的Linux,我做主!】Linux權限管理詳解
接下來我們通過一個簡單的例子來更好的說明這個特殊權限的功能
【我的Linux,我做主!】Linux權限管理詳解
【我的Linux,我做主!】Linux權限管理詳解
【我的Linux,我做主!】Linux權限管理詳解
然後我們將vim命令的屬主加上s位。
【我的Linux,我做主!】Linux權限管理詳解
【我的Linux,我做主!】Linux權限管理詳解
【我的Linux,我做主!】Linux權限管理詳解
(4.2)對於sgid,特殊權限表示爲s,在這裏分爲兩種情況:
①當對一個可執行的二進制文件作用了SGID權限之後,任何擁有執行該文件權限的人,在執行的過程時都臨時擁有該文件所屬組的權限。
②當對一個目錄作用了SGID權限之後,任何對該目錄有wx權限的用戶在該目錄下創建的文件及目錄的所有屬均爲目錄的所有組。
假設存在一個目錄/rh124,這個目錄所屬組爲users,如果/rh124所屬組的權限裏有s位的話,那麼不管是誰在這個目錄裏創建的文件或者目錄,都將繼承rh124所屬組。
【我的Linux,我做主!】Linux權限管理詳解
【我的Linux,我做主!】Linux權限管理詳解
【我的Linux,我做主!】Linux權限管理詳解
(4.3)對於sticKy,特殊權限表示爲t,它的功能爲當對一個目錄作用了sticKy之後(只限制組用戶,目錄的owner不受影響),該目錄下的文件僅其所屬者才能刪除。
用於目錄other的位置,意味着這個目錄裏的東西,除了所有者和root之外,其他用戶時沒有權限刪除的,即使權限是777也不行。
使用root用戶創建一個目錄名爲11,設置目錄的可執行權限爲777,設置目錄11的屬主和屬組爲tom。
【我的Linux,我做主!】Linux權限管理詳解
接着切換到tom用戶,在11目錄下創建test1文件,並設置test1文件的權限爲777。
【我的Linux,我做主!】Linux權限管理詳解
測試發現jerry用戶是可以直接刪除tom用戶創建的test1文件的。
【我的Linux,我做主!】Linux權限管理詳解
接着使用root用戶給目錄11的other位置加上t位,此時發現jerry用戶無法刪除tom用戶創建的test1文件了。
【我的Linux,我做主!】Linux權限管理詳解
【我的Linux,我做主!】Linux權限管理詳解
(4.4)有時候我們看到設置文件權限的時候會有4個數字,其中第一個數字代表的就是suid,sgid,sticKy相關權限的組合(如圖4-18和圖4-19):
【我的Linux,我做主!】Linux權限管理詳解
【我的Linux,我做主!】Linux權限管理詳解
(4.5)文件的隱藏屬性
文件的隱藏屬性對於系統的安全有很大的幫助,尤其是在系統安全(Security)上面,不過要先強調的是,底下的chattr指令只能在Ext2/Ext3/Ext4的Linux傳統文件系統上面完整生效,其他的文件系統可能就無法完整的支持這個指令了,例如xfs僅支持部分參數而已。
chattr(配置文件隱藏屬性圖4-20和圖4-22)
chattr [+-=] [ASacdistu] 文件或目錄名稱
選項與參數:
+:增加某一個參數,其他原本不存在的參數則不動。
-:移除某一個特殊參數,其他原本不存在的參數則不動。
=:設定一定且僅有後面接的參數
A:當設定了A這個屬性時,若你有存取此文件或目錄時,他的訪問時間atime將不會被修改。可避免I/O較慢的機器過度的存取磁盤。
S:一般文件是異步寫入磁盤的,如果加上S這個屬性時,當你進行任何文件的修改,該更動會同步寫入磁盤中
a:當設定a之後,這個文件將只能增加數據,而不能刪除也不能修改數據,只有root才能設定這屬性。
c:這個屬性設定之後,將自動的將此文件壓縮,在讀取的時候將會自動解壓縮,但是在存儲的時候,將會先進行壓縮後再存儲。
d:當dump程序被執行的時候,設定d屬性將可使該文件或目錄不會被dump備份。
i:這個i可就厲害了,他可以讓一個文件不能被刪除、改名、設定連接也無法寫入成新增數據,對於系統安全性有相當大的幫助,只有root能設定此屬性。
s:當文件設定了s屬性時,如果這個文件被刪除,他將會被完全的移除這個硬盤空間,所以如果誤刪了,就完全無法救回來了。
u:與s相反,當使用u來配置文件時,如果該文件被刪除了,則數據內容其實還是存在磁盤中,可以來救援該文件。
注意:屬性設定常見的是a與i的設定值,而且很多設定值必須要作爲root才能設定
【我的Linux,我做主!】Linux權限管理詳解
【我的Linux,我做主!】Linux權限管理詳解
lsattr(顯示文件隱藏屬性圖4-21和圖4-23)
lsattr [-adR] 文件或目錄名稱
選項與參數:
-a:將隱藏文件的屬性也顯示出來。
-d:如果接的是目錄,僅列出目錄本身的屬性而非目錄內的文件名。
-R:連同子目錄的數據也一併列出來。
【我的Linux,我做主!】Linux權限管理詳解
【我的Linux,我做主!】Linux權限管理詳解

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章