萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux 建立不可變更檔案:chattr +i 屬性與 lsattr 驗證完整教學

除了一般 rwx 權限,Linux 檔案系統 (ext2/3/4, XFS, Btrfs...) 支援擴充屬性。chattr +i 可將檔案設為**不可變更**,連 root 也無法修改/刪除/重命名,保護關鍵系統檔或日誌。

chattr / lsattr 基本語法

chattr [+-=] [屬性] 檔案...
lsattr 檔案...
常用屬性:
  i  不可變更 (immutable)
  a  只能附加 (append only)
  A  不更新 atime
  c  自動壓縮
  s  安全刪除 (歸零)
  u  刪除時保留內容可復原
  • + 新增屬性,- 移除,= 設定為唯一屬性集合。
  • 需 root 權限執行。

實戰:保護 /etc/passwd

sudo chattr +i /etc/passwd
lsattr /etc/passwd
# 輸出: ----i---------e---- /etc/passwd

# 嘗試修改將失敗
echo "test" >> /etc/passwd
# bash: /etc/passwd: Operation not permitted

# 解除保護
sudo chattr -i /etc/passwd

遞迴保護整個目錄

sudo chattr -R +i /etc
# 連同子目錄所有檔案設為不可變更

附加模式 (a) 適用場景

日誌檔防止被清空:

sudo chattr +a /var/log/syslog
# 只能 >> 追加寫入,不能 > 覆寫或刪除

重要提醒

  • cp 複製檔案**不會複製屬性**,新檔可正常修改。
  • tar/rsync -a 可保留屬性 (需支援 xattr)。
  • 不可變更非絕對安全:root 可隨時 chattr -i 解除。

copyright © 萬盛學電腦網 all rights reserved