前言
這是我聽老師講課做的筆記,考試要看的。 這是視頻地址
作者:RodmaChen
關注我的csdn博客,更多Linux筆記知識還在更新
文件權限
一. 查看文件的權限與歸屬
1.1 介紹
儘管在Linux系統中一切都是文件,但是每個文件的類型不盡相同,因此Linux系統使用了不同的字符來加以區分,常見的字符如下所示。
字符 | 介紹 |
---|---|
- |
普通文件 |
d |
目錄文件 |
l |
鏈接文件 |
b |
塊設備文件 |
c |
字符設備文件 |
p |
管道文件 |
1.2 修改文件的權限——chmod命令
- chmod命令:用於更改文件對於某類用戶的操作權限
命令 | 功能 |
---|---|
u+x |
增加文件屬主st01的執行權限 |
g-w |
去除文件屬組class1的寫權限 |
o=x |
設置其他用戶的文件權限爲可執行 |
u+x,o+w |
設置用戶擁有執行權限,其他用戶擁有寫入權限 |
ug+x |
設置用戶和用戶組擁有執行的權限 |
- 不過我們一般都使用數字表示權限也可以輕鬆的進行權限的設定,如下圖test文件
-
增加文件屬主
test
的執行權限(x)上面圖表已經給出讀的權限爲數字
4
,寫的權限爲數字2
,執行的權限爲數字1
,那麼三種權限分配的用戶最高權限就是777
效果:原來是664
,增加x
後變成了764
1.3 修改文件的歸屬——chown命令
要想改變一個文件對某些用戶的權限,除了可以修改它的權限之外,還有一個方案就是修改文件屬於哪個用戶和用戶組。
-
chown命令:用於設置文件的屬主和屬組
-
命令格式:chown OWNER[:[GROUP]] FILE…
-
列:
(1) 設置文件afile
的屬主爲用戶st01
# chown st01 afile
(2) 設置文件afile
的屬主爲st03
,並設置文件的屬組爲class2
# chown st03:cl ass2 afile
(3)設置文件afile
的屬組爲用戶組class1
# chown :class1 afile
二.文件的特殊權限
在複雜多變的生產環境中,單純設置文件的
rwx權限
無法滿足我們對安全和靈活性的需求,因此便有了SUID、SGID與SBIT
的特殊權限位。這是一種對文件權限進行設置的特殊功能,可以與一般權限同時使用,以彌補一般權限不能實現的功能。
2.1 SUID特殊權限介紹
-
SUID:對應
user
的權限位置,當s
這個標誌出現在文件所有者的x權限上時,例如文件權限狀態“-rwsr-xr-x
”,此時就稱爲Set UID
,簡稱爲SUID的特殊權限。 -
SUID有這樣的限制和功能:
- SUID權限僅對二進制程序有效;
- 執行者對於該程序需要具有**
x
的可執行權限**;- 本權限僅在執行該程序的過程中有效;
- 執行者將具有該程序所有者的權限。
- 作用:所有用戶都可以執行passwd命令來修改自己的用戶密碼,而用戶密碼保存在
/etc/shadow
文件中。除了root管理員以外,所有用戶都沒有查看或編輯該文件的權限。
- 在使用passwd命令時如果加上SUID特殊權限位,就可讓普通用戶臨時獲得程序所有者的身份,把變更的密碼信息寫入到shadow文件中。因此這只是一種有條件的、臨時的特殊權限授權方法。
- 實例:可以使用
chmod命令
設置文件的特殊權限,在數值表示的權限前加4
表示添加SUID特殊權限。s
的數字表示是4
.
直接數值表示
注意;刪除SUID特殊權限的時候,直接設置權限即可
2.2 SGID特殊權限介紹
-
SGID:對應
group權限
位置,當s
標誌出現在文件所有者的x權限時稱爲SUID
,那麼s
出現在用戶組的x
權限時稱爲SGID
。(U
表示user,G表示group)。 -
SGID有如下功能:
- 讓執行者臨時擁有屬組的權限(對擁有執行權限的二進制程序進行設置);
- 在某個目錄中創建的文件自動繼承該目錄的用戶組(只可以對目錄進行設置)。
- SGID的第一種功能是參考SUID而設計的,不同點在於執行程序的用戶獲取的不再是文件所有者的臨時權限,而是獲取到文件所屬組的權限。
- 舉例:修改文件夾的SGID特殊權限,
2
可以表示SGID的特殊權限。(用法跟SUID差不多)
(1)創建test目錄,利用g+s
設置SGID特殊權限
(2)在權限的數字前面加2
可以設置SGID的特殊權限
2.3 SBIT特殊權限介紹
-
SBIT:對應
other用戶
權限位置 -
SBIT(Sticky Bit)特殊權限位(特殊權限位之粘滯位)。SBIT特殊權限位可確保用戶只能刪除自己的文件,而不能刪除其他用戶的文件。換句話說,當對某個目錄設置了SBIT粘滯位權限後,那麼該目錄中的文件就只能被其所有者執行刪除操作了。SBIT目前只對目錄有效。
-
RHEL 7系統中的
/tmp
作爲一個共享文件的目錄,默認已經設置了SBIT特殊權限位,因此除非是該目錄的所有者,否則無法刪除這裏面的文件。
-
舉例:修改文件夾的SBIT特殊權限,
1
可以表示SGID的特殊權限(1)利用
o+t
設置SBIT特殊權限
(2)在權限的數字前面加1
可以設置SBIT的特殊權限
三.文件的隱藏屬性
- Linux系統中的文件除了具備一般權限和特殊權限之外,還有一種隱藏權限,即被隱藏起來的權限,默認情況下不能直接被用戶發覺。
- 有用戶曾經在生產環境中碰到過明明權限充足但卻無法刪除某個文件的情況,或者僅能在日誌文件中追加內容而不能修改或刪除內容,這在一定程度上阻止了黑客篡改系統日誌的圖謀,因此這種“奇怪”的文件也保障了Linux系統的安全性。
3.1 設置隱藏權限——chattr命令
-
chattr命令:用於設置文件的隱藏權限。 如果想要把某個隱藏功能添加到文件上,則需要在命令後面追加“+參數”,如果想要把某個隱藏功能移出文件,則需要追加“-參數”。
-
命令格式:chattr [選項] 文件
-
常用選項:
選項 | 功能 |
---|---|
i |
無法對文件進行修改;若對目錄設置了該參數,則僅能修改其中的子文件內容而不能新建或刪除文件 |
a |
僅允許補充(追加)內容,無法覆蓋/刪除內容(Append Only) |
- 測試:創建測試文件,進行特殊權限的添加,測試刪除和修改
3.2 顯示隱藏文件——lsattr命令
- lsattr命令:用於顯示文件的隱藏權限,在Linux系統中,文件的隱藏權限必須使用lsattr命令來查看
,平時使用的ls之類的命令則看不出端倪。 - 命令格式:lsattr [選項] 文件
- 一旦使用lsattr命令後,文件上被賦予的隱藏權限馬上就會原形畢露。此時可以按照顯示的隱
藏權限的類型(字母),使用chattr命令將其去掉。
本人博客:https://blog.csdn.net/weixin_46654114
本人b站求關注:https://space.bilibili.com/391105864
轉載說明:跟我說明,務必註明來源,附帶本人博客連接。
請給我點個贊鼓勵我吧