Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Linux 使用 chattr +i 建立不可變更檔案,防止誤刪與竄改

編輯:關於 Linux

權限(rwx)只能控制「誰能讀寫執行」,無法阻止 root 或擁有者誤刪、覆寫關鍵檔案。chattr(Change Attribute)操作檔案系統層級的**擴展屬性**,+i(immutable)屬性一旦加上,**連 root 也無法修改、刪除、重新命名、建立連結、寫入資料**,提供最強級別的檔案保護。

chattr +i 檔案保護示意

核心指令

# 加上不可變更屬性
chattr +i /path/to/critical_file

# 驗證屬性
lsattr /path/to/critical_file
# 輸出:----i---------e---- /path/to/critical_file

# 移除屬性(需 root)
chattr -i /path/to/critical_file

常用擴展屬性速查

屬性字母效果
不可變更i不可修改、刪除、重命名、建立硬連結、寫入資料(最強保護)
僅可追加a只能以追加模式開啟寫入(適用日誌檔防竄改)
不更新 atimeA讀取不更新存取時間(減少 SSD 寫入、提升效能)
壓縮儲存c核心透明壓縮(需檔案系統支援,如 btrfs、ext4 + e4crypt)
安全刪除s刪除時以零覆寫資料區塊(防資料殘留復原)
同步更新S寫入即同步至磁碟(等同 O_SYNC)
無備份u刪除時保留資料區塊供復原(需檔案系統支援)

適用場景

  • 系統關鍵設定檔:/etc/passwd、/etc/shadow、/etc/sudoers、/etc/fstab、/etc/ssh/sshd_config
  • 啟動腳本/服務單元:/etc/rc.local、/etc/systemd/system/*.service
  • 金鑰/憑證:/etc/ssl/private/*、/root/.ssh/authorized_keys
  • 審計日誌:/var/log/audit/audit.log(搭配 +a 僅追加)
  • 容器映像層:避免宿主誤刪導致容器損壞

操作限制與例外

  • root 也受限:rm -f、echo >、mv、ln 皆會報 Operation not permitted。
  • 目錄加 +i:無法在目錄內建立/刪除檔案,但不影響子目錄現有檔案的讀寫(需遞迴加屬性)。
  • 解除需 root:chattr -i 僅 root 可執行,提供審計追蹤。
  • 檔案系統支援:ext2/3/4、xfs、btrfs、reiserfs、jfs 等原生支援;NTFS/FAT/exFAT 不支援。

配合 lsattr 稽核

# 遞迴檢查 /etc 下所有不可變更檔案
lsattr -R /etc | grep '^...i'

# 輸出範例
----i---------e---- /etc/passwd
----i---------e---- /etc/shadow

善用 chattr +i 守護核心檔案,配合 lsattr 定期稽核,構建「改不了、刪不了、查得到」的檔案完整性防線。

Copyright © Windows教程網 All Rights Reserved