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

 2018-04-03    大连    晴 /linux/2018/04/03/acl.html linux nil

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

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

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

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

$ head -n 20 ./permissions.acl
# file: /path/to/folder
# owner: root
# group: root
user::rwx
group::r-x
other::r-x

# file: /path/to/folder/test.conf
# owner: root
# group: root
user::rwx
group::r-x
other::r-x

...

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

setfacl --restore=permissions.acl

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

$ head -n 20 ./permissions.acl
# file: .
# owner: root
# group: root
user::rwx
group::r-x
other::r-x

# file: test.conf
# owner: root
# group: root
user::rwx
group::r-x
other::r-x

...
关于作者
Jason,80 后,现从事通信行业。安卓玩家一个人的书房朗读者麦子
 英语入门到放弃
 jsntn
 jasonwtien
 jasonwtien
更多…… /about.html

最近更新: