Restic: --includeを使用して復元すると、途中で間違ったアクセス許可を持つディレクトリが作成されます。

作成日 2017年10月31日  ·  5コメント  ·  ソース: restic/restic

restic version出力

レスティック0.7.3
linux / amd64でgo1.9を使用してコンパイル

どのようにしてresticを正確に実行しましたか?

以下の詳細を参照してください

どのバックエンド/サーバー/サービスを使用しましたか?

クライアント:Debian Stable(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 latest -t testrestore -i testfile#ファイルを復元します(ディレクトリ全体ではありません)
ls -lR testrestore#ファイルは正しい所有者と権限で復元されます。 ただし、ファイルに到達する途中のディレクトリは、ユーザー「root」と権限700で復元されます。
testrestore /:
insgesamt 4
drwx ------ 2ルートルート4096Okt 31 21:30 testdir

testrestore / testdir:
insgesamt 0
-rwxr-xr-x 1 rakor rakor 0 Okt 3121:25テストファイル

何がこれを引き起こしたのか分かりますか?

途中のディレクトリは「復元」されるのではなく、「安全なデフォルト」で「作成」されるだけだと思います。

問題を解決する方法を知っていますか?

空のディレクトリを作成するだけでなく、復元します。

restore bug

最も参考になるコメント

私には、これは間違いなく復元機能のバグ/問題のように見えます。 あるユーザーが元々所有していたデータを、このユーザーがアクセスできるディレクトリに復元する場合、一部だけが復元された場合でも、このユーザーは復元されたデータにアクセスできると期待しています。 ディレクトリ属性(所有者/アクセスなど)を復元することは、これを実現するための自然な方法のように見えます。

また、現在の動作は、これらの中間ディレクトリを「半分復元」していると認識されており(存在は復元されますが、属性は復元されません)、一貫性がない/非論理的です。

全てのコメント5件

この問題を提起していただきありがとうございます。 中間ディレクトリの以前のアクセス権を正しい方法で設定するかどうかはわかりませんが、これについて少し考えてみましょう。

この問題について他に何か考えはありますか?

私には、これは間違いなく復元機能のバグ/問題のように見えます。 あるユーザーが元々所有していたデータを、このユーザーがアクセスできるディレクトリに復元する場合、一部だけが復元された場合でも、このユーザーは復元されたデータにアクセスできると期待しています。 ディレクトリ属性(所有者/アクセスなど)を復元することは、これを実現するための自然な方法のように見えます。

また、現在の動作は、これらの中間ディレクトリを「半分復元」していると認識されており(存在は復元されますが、属性は復元されません)、一貫性がない/非論理的です。

これはバグだと思います。 バックアップの一部を復元したい場合は、復元したコピーを使用できるはずです。 現在、自動作成された各パス要素の適切な権限、所有者、およびグループを検出するために、制限されたls操作を実行しないと使用できません。 それは本当にファイル/ディレクトリの復元を困難にします。

resticによって復元されるものは、一貫した方法で復元する必要があることに同意します(つまり、復元を実行するユーザーの「デフォルト」のアクセス許可、またはバックアップされた元のファイルやフォルダーからのアクセス許可などを使用して、 2つの組み合わせ)。

ただし、両方のタイプのアクセス許可のユースケースを確認できます。

  • 一部のユーザーは、データを新しいコンテキストに復元する必要があります。そのため、同じディレクトリとファイルを自分で新しく作成したかのように、所有権と権限を「デフォルト」にする必要があります。
  • 一部のユーザーは、バックアップされたのと同じまたは同等のコンテキストにデータを復元する必要があり、そのため、バックアップされた元のファイルと同じ所有権や権限を結果に持たせたいと考えています。
  • 一部のユーザーは、所有権ではなく権限のみを保持したいと考えています(ただし、所有権は自分で簡単に修正できます)。

前進するための合理的な方法は、復元コマンドのいくつかのオプションによって、resticが復元する所有権や権限を制御できることだと思います。

誰かがそれがまだ問題であることを確認できますか? 0.7.3がリリースされてから、中間ディレクトリのアクセス許可(およびタイムスタンプ)の処理にいくつかの変更を加えました...

このページは役に立ちましたか?
0 / 5 - 0 評価