Linux文件保護禁止修改、刪除、移動文件等,使用chattr +i保護
chattr命令的用法:chattr [ -RV ] [ -v version ] [ mode ] files…
最關鍵的是在[mode]部分,[mode]部分是由+-=和[ASacDdIijsTtu]這些字符組合的,這部分是用來控制文件的
屬性。
+ :在原有參數設定基礎上,追加參數。
- :在原有參數設定基礎上,移除參數。
= :更新為指定參數設定。
A:文件或目錄的 atime (access time)不可被修改(modified), 可以有效預防例如手提電腦磁盤I/O錯誤的發生。
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。a選項強制只可添加不可刪除,多用於日志系統的安全設定。而i是更為嚴格的安全設定,只有superuser (root) 或具有CAP_LINUX_IMMUTABLE處理能力(標識)的進程能夠施加該選項。
[root@80uncle /]# chattr +i /etc/passwd
[root@80uncle /]# chattr +i /etc/shadow
[root@80uncle /]# chattr +i /etc/group
[root@80uncle /]# chattr +i /etc/gshadow
[root@80uncle ~]# lsattr /etc/group /etc/passwd /etc/shadow /etc/gshadow
—-i——–e- /etc/group
—-i——–e- /etc/passwd
—-i——–e- /etc/shadow
—-i——–e- /etc/gshadow
如果需要修改密碼,執行 chattr -i 消除權限
[root@80uncle /]# chattr -i /etc/passwd
[root@80uncle /]# chattr -i /etc/shadow
[root@80uncle /]# chattr -i /etc/group
[root@80uncle /]# chattr -i /etc/gshadow
[root@80uncle ~]# lsattr /etc/group /etc/passwd /etc/shadow /etc/gshadow
————-e- /etc/group
————-e- /etc/passwd
————-e- /etc/shadow
————-e- /etc/gshadow
改完權限和再修改文件就可以,修改完之后,再執行.
[root@80uncle /]# chattr +i /etc/passwd
[root@80uncle /]# chattr +i /etc/shadow
[root@80uncle /]# chattr +i /etc/group
[root@80uncle /]# chattr +i /etc/gshadow
(1)修改文件i權限
chattr +i 文件名 將此文件設置為不可修改,不可刪除
chattr +i 文件夾名 將文件夾設為不可修改(且不能在文件夾中修改、刪除或創建文件及文件夾,但可以用>或>>修改文件夾中已有文件的內容),不可刪除
chattr -i 文件或文件夾名 刪除文件或文件夾的i權限
(2)修改文件a權限
chattr +a 文件名 將此文件設置為不可修改(可以用>>追加文件內容),不可刪除
chattr +a 文件夾名 將文件夾設為不可修改(且不能在文件夾中修改、刪除文件及文件夾,但可以在文件夾中創建文件及文件夾,並且可以用>或>>修改文件夾中已有文件的內容),不可刪除
chattr -a 文件或文件夾名 刪除文件或文件夾的a權限
(3)拓展內容
chattr命令用於改變文件屬性。
這項指令可改變存放在ext2文件系統上的文件或目錄屬性,這些屬性共有以下8種模式:
a:讓文件或目錄僅供附加用途。
b:不更新文件或目錄的最后存取時間。
c:將文件或目錄壓縮后存放。
d:將文件或目錄排除在傾倒操作之外。
i:不得任意更動文件或目錄。
s:保密性刪除文件或目錄。
S:即時更新文件或目錄。
u:預防意外刪除。
語法:
chattr [-RV][-v<版本編號>][+/-/=<屬性>][文件或目錄...]
參數:
-R 遞歸處理,將指定目錄下的所有文件及子目錄一並處理。
-v<版本編號> 設置文件或目錄版本。
-V 顯示指令執行過程。
+<屬性> 開啟文件或目錄的該項屬性。
-<屬性> 關閉文件或目錄的該項屬性。
=<屬性> 指定文件或目錄的該項屬性。
ps:chattr命令對子文件夾內部不起作用,除非chattr修改文件夾屬性時遞歸處理。
lsattr命令
(1)顯示文件隱藏屬性
lsattr 文件或文件夾名用於顯示文件隱藏屬性
(2)拓展內容
lsattr命令用於顯示文件屬性。
用chattr執行改變文件或目錄的屬性,可執行lsattr指令查詢其屬性。
語法:
lsattr [-adlRvV][文件或目錄...]
參數:
-a 顯示所有文件和目錄,包括以".“為名稱開頭字符的額外內建,現行目錄”.“與上層目錄”…"。
-d 顯示,目錄名稱,而非其內容。
-l 此參數目前沒有任何作用。
-R 遞歸處理,將指定目錄下的所有文件及子目錄一並處理。
-v 顯示文件或目錄版本。
-V 顯示版本信息。