Hack BBS

[全部のスレッド一覧][新規投稿][記事の削除・変更] [Home Page]

返信投稿はタイトルのリンクをクリックして下さい
スレッド【No.5048】の中の記事をすべて表示しています

【No.5048】のスレッド
08/06/22(日) 00:23:44 投稿者[nice+20] [No.5048]のスレッド内
【No.5048】 タイトル[permissionを落とさないbusybox-tar?] この記事がスレッドの最初です
機種:初代玄箱(多分、依存しない)
ファームウェア:?
ディストリビューション:Vine 4.2
Kernel: 2.6.20-kurobox

少し古い話で、恐縮なのですが。。。

busybox-1.00のtarがpermission落とす問題って、
busyboxの1.8.2では、もしかして直ってませんか?
>>識者の皆様

ためしに、busybox-1.8.2をVine4.2化した初代玄箱で
static buildして、
 % cp -p busybox /mnt/sbin.static/busybox.static
 % cd /mnt/sbin.static
 % ln -s busybox.static tar
 % ls -l /mnt/sbin.static/tar
 lrwxrwxrwx 1 root root 14 Dec 23 03:27 ¥
/mnt/sbin.static/tar -> busybox.static
% file /mnt/sbin.static/busybox.static ¥
/mnt/sbin.static/busybox.static: ELF 32-bit ¥
MSB executable, PowerPC or cisco 4500, version 1, ¥
statically linked, stripped
として、runlevel=N3状態で、
--
% mkdir test_dir
% chmod 1777 test_dir
% touch test_file
% chmod 4777 test_file
% /mnt/sbin.static/tar zcvf test-busybox.tgz ¥
 test_dir test_file
--
としてみたところ、
--
% /mnt/sbin.static/tar ztvf ./test-busybox.tgz
drwxrwxrwt 100/100 0 2008-06-21 23:48:37 test_dir/
-rwsrwxrwx 100/100 0 2008-06-21 23:48:41 test_file
--
% mkdir foo
% cd foo
% /mnt/sbin.static/tar zxvf ../test-busybox.tgz
test_dir/
test_file
% ls -l
total 4
drwxrwxrwt 2 xxxx yyyy 4096 Jun 21 23:48 test_dir/
-rwsrwxrwx 1 xxxx yyyy 0 Jun 21 23:48 test_file*
--
とpermissionが保存されているように見えます。

tarのpermission周りの問題、busybox-1.8.2では
直っているとみてよさそうな気がしますが、
どんなもんでしょうか?>>識者の皆様

08/06/22(日) 02:01:46 投稿者[BOW] [No.5048]のスレッド内
【No.5050】 タイトル[Re: permissionを落とさないbusybox-tar?] 【No.5048】に対する返信
それって、
tarの問題だと聞きましたが、
busyboxって関係あるんですか?

ちなみに私はproユーザなんですんが、
付属CDのソースをみると、
 busyboxは1.4.1
 tarは1.13.25
入ってます。

このうち、tarを
GNU-tar1.15.1以上にすればよいと習いました。


PROは言われるがまま、
Debian化(半自動アップデート状態)してしまったので、
busybox は気にしなくてよいものだと思っていました。

私自身 busybox の役割を理解していないので、
1行くらいで構わないのでどんなことをするものなのかを
この機会にどなたかご教授頂けないでしょうか?

08/06/22(日) 23:21:46 投稿者[nice+20] [No.5048]のスレッド内
【No.5051】 タイトル[Re: permissionを落とさないbusybox-tar?] 【No.5050】に対する返信
>私自身 busybox の役割を理解していないので、
>1行くらいで構わないのでどんなことをするものなのかを
>この機会にどなたかご教授頂けないでしょうか?

1行では難しいのですが、私なりにbusyboxの効能を。

記憶媒体(ディスク、フラッシュ、FD等)の容量が
少ない環境(たとえば、FDとか、フラッシュとか)で、
いくつかのunix/linux系コマンドを1つのbusyboxという
バイナリでまかなってしまおう、という考え方のもとに
つくられたソフト、と考えるとよいと思います。

たとえば、こんなURLが参考になるかな、と思います。
--
組み込みLinuxで際立つ「BusyBox」の魅力
http://monoist.atmarkit.co.jp/fembedded/articles/busybox/busyboxa.html
「BusyBoxはコマンドの十徳ナイフ」
--

1つに入れるために、本来のコマンドに比べて、多少
機能を削られていたり、動作が異なったりする場合も
あります。

ここで取り上げたtarも、busybox-1.0では多少機能が
限定(異なって?)されていたようで、そのための
副作用を解消するため、ここの山下さんもご苦労されて
おられたようです。
--
http://www.yamasita.jp/linkstation/2007/04/070405_busybox_tar_umask.html
--

初代とかその次あたりの玄箱だと、EMモードとかで
あげたときに、hddに乗っているtarって、普通は
使えなくなる(dynamic linkされているため)ので、
上のbusyboxでtarの機能を使えるようにbusyboxを
static linkで作っておいて、symlinkして、hddに
乗っけておくと、EMモードであがっているときでも、
(busyboxの)tarが使えたりする、というところです。

08/06/23(月) 02:51:42 投稿者[BOW] [No.5048]のスレッド内
【No.5053】 タイトル[Re: permissionを落とさないbusybox-tar?] 【No.5051】に対する返信
なるほど、理解できました。

デストリビューションかシェルの類という認識で、
ブラックボックス的に捉えていました。

実際、組み込み用デストリビューションといっても
差し支えなさそうですね。


勉強がてら、開発サイトみてきましたが、
1.6 → 1.7にある、
tar: improve OLDGNU compat, make old SUN compat configurable
という記述が目に付きました。


気になったのは、付属CDのtarソースって、
どういう意味があるのでしょうか・・?

tarのソースはbusyboxに付属するソースで、
busybox自体はビルド用コンフィグファイルの集まり
と見るべきなのでしょうか?

08/06/23(月) 10:33:38 投稿者[nice+20] [No.5048]のスレッド内
【No.5054】 タイトル[Re: permissionを落とさないbusybox-tar?] 【No.5053】に対する返信
>実際、組み込み用デストリビューションといっても
>差し支えなさそうですね。

いわゆるディストリビューション(fedoraとかvineとか)、
というよりは、busybox自体は、cpとかlsとかtarとか同様、
1つのアプリケーションです。
ただ、どういう名前で起動されるか(argv[0])に依存して、
その機能が変わる、というところです。(gzipとzcatの
関係に似てるかも)


>tarのソースはbusyboxに付属するソースで、
>busybox自体はビルド用コンフィグファイルの集まり
>と見るべきなのでしょうか?

たぶん、ですが、附属のtarのソースはいわゆる、単独の
tarコマンドの分だと思います。

busyboxはbusyboxのソースの中にtarの機能を実現する
コードが別に入っています。

参考まで、ですが、busyboxをソースからつくる(build)
するときに、どのコマンドを組み込むかを指定(confi-
gure)することができるようになっています。

08/06/23(月) 22:18:05 投稿者[BOW] [No.5048]のスレッド内
【No.5056】 タイトル[Re: permissionを落とさないbusybox-tar?] 【No.5054】に対する返信
>いわゆるディストリビューション(fedoraとかvineとか)、
>というよりは、busybox自体は、cpとかlsとかtarとか同様、
>1つのアプリケーションです。
>ただ、どういう名前で起動されるか(argv[0])に依存して、
>その機能が変わる、というところです。(gzipとzcatの
>関係に似てるかも)

下手に分類せずに、そういうLinux上のプログラムの1つだと
認識しておくのが無難そうですね。


>たぶん、ですが、附属のtarのソースはいわゆる、単独の
>tarコマンドの分だと思います。
>
>busyboxはbusyboxのソースの中にtarの機能を実現する
>コードが別に入っています。
>
>参考まで、ですが、busyboxをソースからつくる(build)
>するときに、どのコマンドを組み込むかを指定(confi-
>gure)することができるようになっています。

そうなんですよね。
となると、玄箱PROのルートイメージ作った人物は
busybox-tarを使うつもりがなかったはずであり、
 1.busyboxでtarを使うことを知らなかった。
 2.busyboxのtarを差し替え忘れた。
 3.敢えてbusyboxのtarに差し替えた。
のいずれかとなるのですよね。
即ち、busyboxのバグ要因よりはメイクミスの要因が強く腑におちません。


話を戻して、
いずれにせよ今後はbusyboxのバージョンが古くない限り、
気にする必要がなくなることはよいことだと思います。


そもそも、この問題は玄箱公式ページとかで、
取り扱わない部類のものなのでしょうか?

修正後のルートイメージを公開してもよさそうな感じはしますが・・・