誤執行 chmod -R 777 / 導致系統癱瘓。利用同版本健康主機的 ACL 備份,透過 getfacl/setfacl 快速還原權限,避免重裝系統。
| 指令 | 用途 |
|---|---|
getfacl -R 目錄 > backup.acl | 遞迴匯出目錄及所有子項的 ACL 到檔案 |
setfacl --restore=backup.acl | 從備份檔還原 ACL(會覆蓋現有權限) |
# 1. 確認當前目錄
pwd
# /
# 2. 備份健康主機 /root 權限
getfacl -R /root > 11.bak
# 3. 故意破壞權限模擬災難
chmod -R 700 /root/*
# 4. 切換到目標主機同路徑還原
cd /
setfacl --restore=11.bak
# 5. 驗證
ls -l /root
ssh healthy_host "getfacl -R /etc" | setfacl --restore=- 透過管道直接還原。getfacl -R -t d /path 僅目錄,-t f 僅檔案。mount --bind / /mnt/rootfs 僅備份根檔案系統,避免跨裝置。或使用 find / -xdev -exec getfacl ...。acl 選項 (/etc/fstab 加入 acl),tune2fs -o acl /dev/sdX 亦可。setfacl --restore 會完全覆蓋目標 ACL,謹慎執行。getfacl/setfacl 是權限災難復原的利器。養成「異構主機同版本 ACL 定期備份」習慣,關鍵時刻可將恢復時間從小時級壓縮至分鐘級。