将 unix 文件备份到不允许 chgrp/chown 等的文件系统

Fle*_*exo 3 backup filesystems permissions backup-restoration file-permissions

不幸的是,我别无选择,只能将服务器上的 ext3 分区中的一些文件备份到不允许我设置和编辑正常文件属性的文件系统(NFS,将 all_squash 设置为 chgrp/chown 等,即使 root 是被禁止的) )。我计划使用 rsnapshot 进行实际备份,因为我已经熟悉这一点并且它在其他场景中运行良好。

显然,我希望以某种方式保留这些备份的权限、所有权和其他属性,即使它不直接与文件本身有关。在我看来,剩下三个选项:

  1. 在远程 NFS 空间上创建一个环回文件系统。
  2. 单独转储其他属性。
  3. 使用 FUSE 文件系统作为覆盖,通过写入 /backup/.permissions/ 或其他一些额外文件来伪造这一点。

这些都不理想:

  1. 我想使用 automount 使用外部文件存储,但 automount 不允许这样的递归安装(据我所知)。
  2. 这似乎不是很容易使用 shell 脚本来完成。使用find+stat会有点浪费,但更重要的是从该信息中恢复会很繁琐。我可以编写一个小工具(在 C 中)来调用stat,将结构转储到文件并从该结构中恢复适当的信息,但这对于一些应该是微不足道的事情来说似乎是很多工作。
  3. 我很惊讶没有任何东西已经这样做了,但我似乎在这个 FUSE 文件系统列表中看不到任何合适的东西,我认为它非常权威。

建议?我倾向于解决方案 #3,除非它已经存在或者 #2 比我认为的更琐碎。我想要一些不需要重新发明任何轮子的简单而强大的东西,但是如果它们真的有用,我愿意编写新的轮子。

use*_*517 6

您可以使用转储文件的属性getfacl -R * >perms.bak并使用恢复它们setfacl --restore=perms.bak