画像作成時のユーザーIDの翻訳

画像作成時のユーザーIDの翻訳

与えられたディレクトリ階層からイメージ(例:ext3イメージ)を作成したいと思います。このディレクトリ階層は、指定されたユーザーが所有します。しかし、最終イメージでは、スーパーユーザーがファイルを所有することを望みます。ユーザーuid / gidを0に変換するソリューションはありますか?

疑似ワークフローは次のとおりです。

  1. ユーザーによるファイル階層の作成/home/user/rootfs

  2. ファイルにext3 imgを作成する

  3. ループマウントBean img(ユーザーまたはルートとして)/somewhere/loopmount

  4. cp -R --magic_uid_options 500=0 /home/user/rootfs /somewhere/loopmount

または、手順4は一般的なコピーであることも、手順5はchown再帰的に実行できる賢い発見ですchgrp。この種の問題に対するよく知られた解決策はありますか?

答え1

--magic_uid_options私はこのコマンドについて「」を知りませんcp。そして、あなたも知る必要はありません。賢い再帰chownまたはを実行するために使用されますchgrp

実際に私は:

  • コピーを作成するときは、できるだけ多くのファイル/ディレクトリ属性(タイムスタンプ、...)を維持してください。

    cp -pR /home/users/rootfs /somewhere/loopmount/
    
  • chownすべてroot:root:

    chown -R root:root /somewhere/loopmount
    

答え2

ルートとして4つのステップを実行できます。

cd /home/user/rootfs
pax -rw -pp . /somewhere/loopmount

-ppモードと時間は維持されますが、実行中のユーザーとグループが所有するファイルを作成しますpax

関連情報