user_2018-02-14
2018年3月14日 17時38分
x1-debian-builderのbuild.shでルートファイルシステムアーカイブ後に、アーカイブされたファイル(debian-jessie-armhf_aiotg3***.tar)の中身を見ると、ファイルの所有ユーザと、所有グループが全て"root:root"になっています。
"x1-debian-builder-v1.1.2\aiotg3l_resources\\" 配下に置いているファイルの所有権はroot以外のユーザ、グループに設定しているのですが、
アーカイブ後に、パーミッションが"root:root"変更されてしまっています。
パーミッションを維持することはできないのでしょうか。
以上、よろしくお願い申し上げます。
コメント
user_2018-02-14
at_ohsawa
"cp -a"とした場合、アーカイブ内の/etc/passwdで定義するUID/GIDと
build.shを実行しているATDE等の環境でのUID/GIDが一致する必要がある点、
ご注意ください。
atmark ユーザーについてはATDEとx1-debian-builderの間で
UID=1000で一致させているので問題ないです。
ATDE側でadduserたユーザーに対するパーミッションを設定した
場合は、x1-debian-builderでも同じUIDでadduserしていないと、
起動した時に、UNKNOWNユーザーとなりアクセス権が意図しない
状態になります。
ここからは弊社が作れてないので、申し訳ないのですが、
正攻法は、cp -aではなくtar(tarは展開時にUID/GIDではなく、
同じ名前のユーザー、グループにマップして展開します)を
経由する方法です。
なぜ、この方法でうまくいくかと申しますと、
build.shはリソース群をコピーした後は、chroot+qemu環境で
Armadillo向けのアーカイブを操作しております。
つまり、構築中は、いわゆる仮想コンテナ内でArmadillo実機の
ように振る舞っているということです。
そのため、対応するユーザー名、グループ名があれば、
Armadillo上でtarを展開した時にようにパーミッションが
名前一致で振られることになり、UID不一致の問題が解決されます。
しかし、前提としてユーザーとグループが、前述のtarを展開する
前にアーカイブ内に存在する必要があり、ATDE等PC側の/etc/passwdを
コピーするのもセキュリティ上問題がありそうなので、お勧めできる
実装を作れておりません。
y.nakamura
中村です。
> "cp -a"とした場合、アーカイブ内の/etc/passwdで定義するUID/GIDと
> build.shを実行しているATDE等の環境でのUID/GIDが一致する必要がある点、
> ご注意ください。
at_ohsawaさんからx1-debian-builderの内部の仕組みと
tarを使った方法のご説明がありましたが、もっと簡単に、
ATDE上でchownでArmadillo上と同じUID:GIDを設定しておく、
という方法でもいいと思います。
ATDE上で"ls -l"したとき存在しないユーザなので
UIDとGIDの名前でなくて数値で表示されてしまいますが、
これが問題となることはないでしょう。
--
なかむら
user_2018-02-14
y.nakamura
2018年3月14日 22時42分
中村です。
> x1-debian-builderのbuild.shでルートファイルシステムアーカイブ後に、アーカイブされたファイル(debian-jessie-armhf_aiotg3***.tar)の中身を見ると、ファイルの所有ユーザと、所有グループが全て"root:root"になっています。
>
> "x1-debian-builder-v1.1.2\aiotg3l_resources\\" 配下に置いているファイルの所有権はroot以外のユーザ、グループに設定しているのですが、
> アーカイブ後に、パーミッションが"root:root"変更されてしまっています。
>
> パーミッションを維持することはできないのでしょうか。
x1-debian-builderのbuild.shを使ったことがなく、
build.shの中身をざっと見ただけですが、
でコピーするときにroot:rootになっているのではないでしょうか?
"-r"ではなく"-a"を使えばユーザ:グループが保存されると思います。
ただ、このスクリプトの他の部分をほとんど読んでませんので、
"-a"を使うことによる影響が何かあるかもしれません。
# x1-debian-builderのbuild.shを使ったことはないのですが、
# 近い将来、使うことになりそうなので、調べてみました。
--
なかむら