restic version
Restic 0.7.3
在Linux / amd64上用go1.9编译
请参阅下面的详细信息
客户:Debian稳定版(9.2)
服务器:使用OpenSSH的LAN中的FreeBSD 11.1服务器(OpenSSH_7.2p2,OpenSSL 1.0.2k-freebsd 2017年1月26日)
即使仅还原层次结构中较深的文件,也应使用原始权限和所有权创建所有目录。
还原位于层次结构深处的文件时,将使用与原始文件不同的用户和权限来还原下行目录。
mkdir testdir#创建目录
touch testdir / testfile#在其中创建一个文件
chmod 755 testdir testdir / testfile#确保权限为755
su#切换到root
restic -r sftp:rakor @ SERVER :/ usr / home / rakor / resticbackuptest backup testdir#进行备份
restic -r sftp:rakor @ SERVER :/ usr / home / rakor / resticbackuptest restore最新-t testrestore -i testfile#恢复文件(不是整个目录)
ls -lR testrestore#使用正确的所有者和权限还原文件。 但是,使用用户“ root”和权限700还原到文件的目录。
testrestore /:
注射剂4
drwx ------ 2根根4096 Okt 31 21:30 testdirtestrestore / testdir:
仪表0
-rwxr-xr-x 1 rakor rakor 0 Okt 31 21:25测试文件
我认为下降的目录不是“还原”的,而是“安全默认值”的“创建”。
恢复空目录,而不仅仅是创建它们。
感谢您提出这个问题。 我不确定以正确的方式在中间目录上设置先前的访问权限,让我考虑一下。
关于此事还有其他想法吗?
对我来说,这肯定看起来像是恢复功能中的错误/问题。 如果我要将原本属于某个用户的数据还原到该用户可以访问的目录中,则我希望该用户能够访问已还原的数据,即使仅还原了一部分。 恢复目录属性(owner / access / etc)似乎是实现此目的的自然方法。
同样,当前的行为被认为是对这些中间目录的恢复(“还原”了它们的存在,但它们的属性没有恢复),这似乎是不一致/不合逻辑的。
我认为这是一个错误。 如果我想还原部分备份,则还原后的副本应该可用。 当前,如果不执行restic ls操作来发现自动创建的每个路径元素的正确权限,所有者和组,将无法使用。 这确实使文件/目录的恢复变得困难。
我同意应通过restic还原的内容应以一致的方式进行还原(即,使用运行还原的用户的“默认”权限,或使用已备份的原始文件和文件夹的权限等),两者的结合)。
但是,我可以在两种类型的权限中看到一个用例:
我认为前进的合理方法是,可以通过restore命令的某些选项来控制restic恢复哪些所有权和/或权限。
有人可以确认这还是个问题吗? 自0.7.3发布以来,我们对中间目录的权限(和时间戳)进行了一些更改...
最有用的评论
对我来说,这肯定看起来像是恢复功能中的错误/问题。 如果我要将原本属于某个用户的数据还原到该用户可以访问的目录中,则我希望该用户能够访问已还原的数据,即使仅还原了一部分。 恢复目录属性(owner / access / etc)似乎是实现此目的的自然方法。
同样,当前的行为被认为是对这些中间目录的恢复(“还原”了它们的存在,但它们的属性没有恢复),这似乎是不一致/不合逻辑的。