バックアップ(/ etc)でファイルの所有権を保存する方法は?

バックアップ(/ etc)でファイルの所有権を保存する方法は?

私はバックアップが役に立つかもしれないと提案する多くのソースを見ました/etc。たとえば、「友人や家族のための Debian コンピュータのサポート」というプレゼンテーションがあります。

重要なバックアップには、明確に定義された回復プロセスも必要です(定期的にテストできます:-)。

これらのシステムファイルを回復する方法、所有権情報を含むバックアップから?効果的な回復プロセスの例を見てください。どのような仮定をしたかを説明してください。tarまたはなど、必要なバックアップツールを選択できますetckeeper


特定の所有者を持つファイルの例:

$ ls -l|grep -v "root root"
total 2240
-rw-r-----.  1 root brlapi     33 Nov 15 21:32 brlapi.key
-rw-r-----.  1 root chrony    481 Nov 21 11:03 chrony.keys
drwxr-xr-x.  4 root lp       4096 Apr 18 10:58 cups
-rw-------.  1 tss  tss      7046 Feb  5  2016 tcsd.conf

答え1

私の方法はインストールすることですマネージャーをお待ちください。これはDebianとその派生物によく統合されています。 Etckeeperは権限を記憶する役割を担います(SELinuxラベルを除く)。その後、バックアップはバージョン管理リポジトリ(ソースなど)をバックアップするための/etcよく知られた問題に縮小されます。git pull/etc

バックアップを復元するには:

  1. 基本インストールを実行します(元の基本インストールと同じ)。
  2. etckeeper必要なバージョン管理システムをインストールしてください。
  3. /etcgit cloneまたは同等の)バックアップを復元しますgit checkout。 sourcejediが指摘したように、ユーザーまたはグループIDを動的に割り当てるパッケージをインストールする前にこれを行う必要があります。
  4. インストールされているパッケージのリストを復元してインストールします。 EtckeeperはDebianとその派生製品でこれを追跡しませんapt-cloneある Debian システムから別の Debian システムにインストールされたパッケージを選択してコピーする方法は? (Debian ハルトック))。
  5. 再起動。

ハードウェアがまったく同じでない場合、またはファイルシステムが再フォーマットされている場合(バックアップを復元するときによく発生する)、一部の機能が正しく機能しないことがあります。よりスムーズな回復のために、構成内のどこにも一意のハードウェア識別子(MACアドレス、ディスクのシリアル番号など)または任意の識別(ファイルシステムまたはパーティションUUIDの代わりにファイルシステムラベルを使用)を使用しないでください。

答え2

この答えはテストするいくつかの問題のリストであり、他の場所では言及されていません。今は、復元方法に関する詳細が含まれていない「バックアップ」/ etcへの言及を喜んで無視することができます。 このリストが完全であるかどうかはテストされていません。

次の手順では、質問に特に記載されていないように、パッケージのアップグレード中に etckeeper で頻繁に表示されるバージョン固有の変更やその他の変更も無視します。 OpenWrtを実行しているルーターのように、これが問題にならないより簡単なシステムがあるかもしれません。

  1. 仮定: このバックアップに具体的に/etc
  2. 前提:ファイルシステムへの参照を処理する方法も知っています。たとえば/etc/fstab
  3. 前提:ターゲットシステムには何も含まれていません。追加バックアップと比較。たとえば、オペレーティングシステムを新しくインストールすると、初期ユーザーは同じ名前(およびUID)で作成され、アップグレード中にオペレーティングシステムに他のサービスが追加されません。これは Debian 安定リリースでは本当かもしれませんが、ローリングリリースでは確かに信頼できません。
  4. 前提:インストールプロセスは、割り当てられたパッケージのインストール順序(UID)によって完全に決定的です。そしてこれはリポジトリの新しい更新に影響されません。私は通常、パッケージマネージャが決定的だと思います。同様に、Debian 安定リリースは信頼できますが、ローリングリリースはそうではないかもしれません。アップデートリポジトリにアクセスせずに、まったく同じバージョンのインストーラを実行するようにスケジュールすることもできます(両方とも修復中)。そして元のシステムをインストールした場合)。
  5. すでにバックアップ回復ツールがインストールされている必要があります。 :)
  6. 次の手順では、Linux用の既存のシャドウパスワードファイルも想定しています。 BSDシステムは異なるファイル名を使用します。いくつかの特別な目的のLinuxシステムが導入されました。スタイルは間違いなく違います。
  7. で定義されたパスワードを使用せずにいくつかの「回復モード」で起動できること、および/etcバックアップにアクセスするためにもっと複雑なものが必要ないことを確認してください。私たちは不満をしています。バックアップと同じパスワードを使用すると役に立ちますが、ディスク暗号化がこれをどのように処理するのかわかりません。別の Rescue で実行している場合、次の手順は機能しません。システム」。
  8. mv /etc/ /etc.installer # can be removed later
  9. mkdir /etc && chmod 755 /etc
  10. ID_FILES=passwd group shadow
  11. for i in $ID_FILES; do cp /etc.installer/${i} /etc; done
  12. iこれで、すべてのファイルのバックアップからターゲットシステムに復元$ID_FILESできます。/etc/${i}
  13. これで復元できますみんな所有権情報を含むファイルです。
  14. 今できるSELinuxラベルを再適用してください。またはそれに対応するもの(必要な場合)。

バックアップがetckeeperリポジトリで他のファイルがない場合は、手順12はコピー/複製してから手順/etc10〜12etckeeper initをスキップできます。

OpenWrt

OpenWrtルーターはシステム構成のバックアップ/復元をサポートし、Webインターフェースで特定の機能を提供します。

私のOpenWrt 15.05.1システムで/etcファイル(または他の場所)を所有しているユーザーrootはとですnobody。 OpenWrt の新規インストールでは、すでにこれらのユーザーが含まれていると仮定するのは安全です。

追加ユーザーが追加されたOpenWrt設定をこのツールで正しく処理できるかどうかわかりません。

関連情報