除了一般 rwx 權限,Linux 檔案系統 (ext2/3/4, XFS, Btrfs...) 支援擴充屬性。chattr +i 可將檔案設為**不可變更**,連 root 也無法修改/刪除/重命名,保護關鍵系統檔或日誌。
chattr [+-=] [屬性] 檔案...
lsattr 檔案...
常用屬性:
i 不可變更 (immutable)
a 只能附加 (append only)
A 不更新 atime
c 自動壓縮
s 安全刪除 (歸零)
u 刪除時保留內容可復原
+ 新增屬性,- 移除,= 設定為唯一屬性集合。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
# 連同子目錄所有檔案設為不可變更
日誌檔防止被清空:
sudo chattr +a /var/log/syslog
# 只能 >> 追加寫入,不能 > 覆寫或刪除
cp 複製檔案**不會複製屬性**,新檔可正常修改。tar/rsync -a 可保留屬性 (需支援 xattr)。chattr -i 解除。