tarコマンドでファイルをバックアップ・リストアするとき、例えば他のOSで全てのファイルをアーカイブして、Knoppixで展開してchrootしてGRUBをインストールして、リストア先のシステムを起動すると、ファイルのオーナーが変わってしまうことがあります。これは同じユーザー名が存在しつつもUIDが異なると、展開時のユーザーのUIDで展開されてしまうためです。

これを防ぐために–numeric-ownerというオプションがあるのですが、これがどう働くのかいまいちよく分かってなかったので、整理するために実験をしてみました。

手順:
1. ファイルをアーカイブする(–numeric-ownerありとなし)
2. UIDを変更した状態で展開する(–numeric-ownerありとなし)
3. UIDを戻してファイルのオーナーがどうなったか調べる

作成時のoption 展開時のoption 異なるUIDで展開した場合 →元のUID戻すと?
なし なし 同じownerのまま ownerが替わってしまった
なし あり ownerが入れ替わる 同じownerに戻った
あり なし ownerが入れ替わる 同じownerに戻った
あり あり ownerが入れ替わる 同じownerに戻った

その結果、–numeric-ownerオプションなし/なしの場合の時だけ、ユーザー名とUIDが入れ替わってしまうことがわかりました。いずれかで–numeric-ownerオプションを付けた場合は、ユーザー名ではなくUIDでファイルの展開がされたため、きちんとUIDの情報が保持されているようです。

LINEで送る
Pocket