与えられたディレクトリ階層からイメージ(例:ext3イメージ)を作成したいと思います。このディレクトリ階層は、指定されたユーザーが所有します。しかし、最終イメージでは、スーパーユーザーがファイルを所有することを望みます。ユーザーuid / gidを0に変換するソリューションはありますか?
疑似ワークフローは次のとおりです。
ユーザーによるファイル階層の作成
/home/user/rootfs
ファイルにext3 imgを作成する
ループマウントBean img(ユーザーまたはルートとして)
/somewhere/loopmount
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
。