1

/home データの一部を含め、マシンのいくつかの重要なファイルとディレクトリをルートとしてバックアップしようとしています。いくつかのファイルを手動で選択して、tarball のサイズを小さくしています。とにかく、ほとんどのファイルはルートによって所有されているため、ほとんどすべてが問題ありませんが、これを試してみてください:

# tar -cf backup.tar /home/user/file

内容を復元すると、/home/user/file は想定どおりユーザーが所有していますが、/home/user は root が所有しています。やってみましたが、

# tar -cf backup.tar /home

この場合、すべての /home 所有者が保持されます。(私はルートなので -p フラグは必要ないことに注意してください。それでも試してみました...)

これは正常な動作ですか?もしそうなら、 /home 所有権情報を保持しながら、通常のユーザーのファイルを手動で選択してバックアップする方法はありますか? 私の目標は、/ からすべてを単純に untar することです。

ありがとう!

4

1 に答える 1

2

ディレクトリのパーミッションを適切に設定するには、tarball にそれらのディレクトリのエントリが含まれている必要があるため、それらを tarball に追加する必要があります。

/home/user/fileのみを含み、 を含まないtarball を作成すると、tarball に/home/userは の権限に関する情報がない/home/userため、tar何をすべきかわかりません。ディレクトリは自動的に作成されますが、それらに付与する権限、所有者、またはグループがないため、デフォルトが取得されます。

ディレクトリを追加することもできます。

# tar -cf backup.tar --no-recursion /home/user /home/user/file

しかし、これで物事が簡単になるわけではありません。--no-recursionディレクトリの下に何も追加せず、ディレクトリ自体だけを追加するように tar に指示する - に注意してください。実際にディレクトリツリーも追加したい場合は、find(1)そのディレクトリの下にあるすべてのファイルを手動で渡す必要があります。それはすぐに醜くなるでしょう。

特定のファイルのバックアップと復元について話していることに注意してください。復元する場合は、復元先の unix アカウントがまだ存在しない場合は作成することもあるでしょう。そのため、少なくともホーム ディレクトリにアクセス許可を設定する必要はありません。ただし、それらのサブディレクトリについては同じことが言えません。

于 2012-04-06T12:01:55.473 に答える