系統維護過程中,誤修改檔案權限可能導致服務異常。透過 ACL(存取控制列表)工具,我們可以完整備份目錄樹下所有檔案的權限設定,並在需要時一鍵還原。本文示範在主流發行版上安裝 ACL 並實作備份/還原流程。
| 發行版 | 安裝指令 |
|---|---|
| Debian/Ubuntu/Linux Mint | |
| CentOS/Fedora/RHEL |
# 進入目標目錄
cd /tmp
# 查看原始權限
ls -l
# -rwxr--r--. 1 root root 0 Mar 3 04:40 install.txt
# -rwxr-xr-x. 1 root root 0 Mar 3 04:41 linuxprobe.txt
# 遞歸備份 ACL 到檔案
getfacl -R . > permissions.txt
# file: .
# owner: root
# group: root
user::rwx
group::rwx
other::rwx
# file: install.txt
# owner: root
# group: root
user::rwx
group::r--
other::r--
# file: linuxprobe.txt
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
chmod 733 linuxprobe.txt
chmod 573 install.txt
# 驗證權限已改變
ls -l
# -r-xrwx-wx. 1 root root 0 Mar 3 04:40 install.txt
# -rwx-wx-wx. 1 root root 0 Mar 3 04:41 linuxprobe.txt
# 必須在建立備份檔時的相同目錄下執行
setfacl --restore=permissions.txt
# 驗證還原結果
ls -l
# -rwxr--r--. 1 root root 0 Mar 3 04:40 install.txt
# -rwxr-xr-x. 1 root root 0 Mar 3 04:41 linuxprobe.txt

建議在進行系統更新、遷移或批次修改權限前,先以此法建立權限備份,避免人為疏失導致服務中斷。