最近一直在思考一个问题,如果手抖不小心执行命令chmod 777 -R /,刚好没有系统备份,那就真的是悲剧了。生产系统的备份,真的是重中之重啊。

本次只讨论如何备份系统文件权限。

1、创建一个文件,用于测试。

[root@reed ~]# ll testfacl.txt 
-rw-r--r-- 1 root root 0 Mar 16 05:27 testfacl.txt

可以看出testfacl.txt文件权限为644。

2、备份当前目录下(包括子目录)所有文件的权限

[root@reed ~]# getfacl -R . >/tmp/facl.bak
[root@reed ~]# grep "testfacl.txt" -A 5 /tmp/facl.bak  
# file: testfacl.txt
# owner: root
# group: root
user::rw-
group::r--
other::r--

3、修改文件权限

[root@reed ~]# chmod 777 testfacl.txt ;ll testfacl.txt 
-rwxrwxrwx 1 root root 0 Mar 16 05:27 testfacl.txt

4、恢复文件权限

[root@reed ~]# setfacl --restore=/tmp/facl.bak 
[root@reed ~]# ll testfacl.txt 
-rw-r--r-- 1 root root 0 Mar 16 05:27 testfacl.txt

可以看出,已经恢复之前备份的权限了。

防患于未然,最好给每个系统做一个文件权限备份,要不然免得欲哭无泪。

getfacl -R / >/tmp/a.facl