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 遞歸處理,将指定目錄下的所有檔案及子目錄一并處理。