守望的麦子

Linux 文件用户组权限的备份和恢复

2018-4-3    大连    /linux/2018/04/03/acl.html linux

getfaclsetfacl 是用来备份和恢复文件权限的命令。在解压和拷贝文件时,可以用来解决文件或文件夹权限被改动的问题。例如执行下面的命令可以为指定文件/文件夹创建一份用户组和权限的 snapshot:

1 getfacl -R /path/to/folder > permissions.acl

以上命令会备份出 folder 文件夹自身和其中所有文件的用户组和权限(也包括 folder 子文件夹),-R 参数用于指示深度遍历所有层级的子文件夹和文件。

现在我们就有了一个 permissions.acl 文件,其中存储了 folder 的用户组权限,格式如下:

 1 $ head -n 20 ./permissions.acl
 2 # file: /path/to/folder
 3 # owner: root
 4 # group: root
 5 user::rwx
 6 group::r-x
 7 other::r-x
 8 
 9 # file: /path/to/folder/test.conf
10 # owner: root
11 # group: root
12 user::rwx
13 group::r-x
14 other::r-x
15 
16 ...

如果我们丢失了 folder 的用户组和权限,可以使用下面的命令恢复:

1 setfacl --restore=permissions.acl

注意:如果在备份时使用的是绝对路径,那么 permissions.acl 文件中会引用文件和文件夹的绝对路径,在恢复时则无须另指定恢复的路径(上面的 permissions.acl);但如果备份时使用的是相对路径(例如 getfacl -R ./folder > permissions.acl),则需要先进入要恢复的目录中再进行恢复,相对路径的 permissions.acl 示例如下:

 1 $ head -n 20 ./permissions.acl
 2 # file: .
 3 # owner: root
 4 # group: root
 5 user::rwx
 6 group::r-x
 7 other::r-x
 8 
 9 # file: test.conf
10 # owner: root
11 # group: root
12 user::rwx
13 group::r-x
14 other::r-x
15 
16 ...
关于作者
麦子,80 后,现从事通信行业。安卓玩家一个人的书房朗读者。
MRJENGLISH
jsntn
jasonwtien
jasonwtien
更多…… /about.html

最近更新: