chattr命令保護關鍵文件

玩Linux的時候,有些文件使用root權限都不能修改和刪除,這是什麼緣由呢?大可能是由於曾經使用過chattr命令鎖定過該文件。chattr命令可以修改文件高級屬性,這能夠提升系統的安全性哦!web


知識儲備安全


  • ls -l顯示的文件屬性只能包含讀、寫、執行這類基本屬性bash

  • chmod可以定義3類用戶:屬主、屬組、其餘用戶的各自3種權限:讀、寫、執行服務器

  • chattr可以修改文件的高級屬性,包括IO同步、刪除保護、寫入保護等等app

  • lsattr用來查看文件的高級屬性的ide


chattr用法spa


Usage:chattr [-RVf] [-v version] [mode] files...3d

Mode:+-= [acdeijstuADST].日誌

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
blog


+ :在原屬性基礎上,添加屬性。
- :在原屬性基礎上,移除屬性。
= :將文件的高級屬性指定爲,這個操做會覆蓋原有任何高級屬性

屬性選項:
A:文件的 atime時間戳 可被修改(modified)。--->通常web服務器上,文件的atime都是關閉的,避免頻繁修改佔用IO資源

S:硬盤I/O同步選項,功能相似sync。

a:即append,設定該參數後,只能添加數據,而不能刪除,多用於服務器日誌文件安全,只有root才能設定這個屬性。

c:即compresse,設定文件是否經壓縮後再存儲。讀取時須要通過自動解壓操做。

d:即no dump,設定文件不能成爲dump程序的備份目標。

i:設定文件不能被刪除、更名、設定連接關係,同時不能寫入或新增內容。i參數對於文件 系統的安全設置有很大幫助。

j:即journal,設定此參數使得當經過mount參數:data=ordered 或者 data=writeback 掛 載的文件系統,文件在寫入時會先被記錄(在journal中)。若是filesystem被設定參數爲 data=journal,則該參數自動失效。

s:保密性地刪除文件或目錄,即硬盤空間被所有收回。

u:與s相反,當設定爲u時,數據內容其實還存在磁盤中,能夠用於undeletion。

各參數選項中經常使用到的是a和i:
<1> a選項強制只可添加不可刪除,多用於日誌系統的安全設定。
<
2> 而i是更爲嚴格的安全設定,只有superuser (root) 或具備CAP_LINUX_IMMUTABLE處理能力(標識)的進程可以施加該選項。


實例1:參數i對系統關鍵文件/etc/fstab作保護防止篡改、刪除等!

#chattr +i /etc/fstab

wKioL1YI3RCCRXV7AAaBOO91OoY235.bmp


實例2:參數a對日誌追蹤類文件作安全策略!日誌只可追加數據,不可修改,不能夠刪除!

wKiom1YI4SCDXK45AAtLeBdNE48939.bmp

  • >>追加沒問題,>覆蓋提示權限拒絕,此處我是root用戶哦!

  • rm -f強制刪除被拒絕!不可刪除

  • split切割沒問題,本質上切割並不會對原文件開刀,因此不會影響的!


實例3:經過lsattr查看文件or目錄的高級屬性

#lsattr [-RVadlv] [files...]

wKioL1YI36yjnE09AAPfmOZNVQ8743.bmp


最後一點總結:


  • chattr所修改的文件高級屬性,對目錄一樣適用,可是這些高級屬性受到Kernel版本支持!

  • 可使用chattr +i選項鎖定那些系統的、不更改的文件,頗有效哦!

  • 對於目錄/ /dev /proc /tmp /var等不可以保護!

相關文章
相關標籤/搜索