[Armadillo:02895] Re: romfs-inst.shnoの使用方法について

相田 仁 email@hidden
2008年 5月 7日 (水) 12:45:51 JST


nakai様

東京通信機工業の相田です。
早速のご回答ありがとうございます。

ROMFSINSTを使用せずにパーミッションを変更する案を採用して、
その動作結果が意図した結果であることを確認できました。

また、romfs-inst.shへのパッチは見送りましたので、
パッチによる影響の有無については不明です。


以上、ありがとうございました。



> nakaiです。
> 
> romfs-inst.shをみると、
> -pオプションを指定するだけの場合、デフォルトの動作としてファイルコピーが走るようです。
> 
> 	$(ROMFSINST) /etc/sudoers
> 
> と同じ動作です。その後、chmodが実行されるようです。
> 
> ですので、ローカルディレクトリにsudoersが無い場合にご指摘のとおり、
> 	cp: cannot stat `sudoers': No such file or directory
> と表示され、romfs/etc/sudoersは削除されています。
> 
> やりたいことを実現する方法は2通り考えられます。
> 
> 1.
> 	ROMFSINSTを使用しないでパーミッションを変更後、appendする。
> 	以下のようにするとできます。
> 
> romfs:
> 	chmod 660 $(ROMFSDIR)/etc/sudoers
> 	$(ROMFSINST) -a 'Cmnd_Alias FLATFSD /bin/flatfsd' /etc/sudoers
> 	$(ROMFSINST) -p 440 -a 'nobody ALL=(root)NOPASSWD:FLATFSD' /etc/sudoers
> 
> 
> 2.(あまり推奨しません。影響範囲がわからない為。)
> 	-pオプションを単独で実行できるようにする。
> 	以下のパッチをあてることにより、単独でパーミッションを変更できるようになります。
> 
> diff --git a/tools/romfs-inst.sh b/tools/romfs-inst.sh
> index 8c70582..42af4c1 100755
> --- a/tools/romfs-inst.sh
> +++ b/tools/romfs-inst.sh
> @@ -129,7 +129,7 @@ do
>         v) v="1";                           ;;
>         o) option="$OPTARG";                ;;
>         e) eval option=\"\$$OPTARG\";       ;;
> -       p) perm="$OPTARG";                  ;;
> +       p) perm="$OPTARG"; func=setperm     ;;
>         a) src="$OPTARG"; func=file_append; ;;
>         A) pattern="$OPTARG";               ;;
>         l) src="$OPTARG"; func=hard_link;   ;;
> 
> 
> 相田 仁 さんは書きました:
> > atmark-dist-20070720のromfs-inst.shを利用して、
> > ファイルのパーミッションを変更しようとすると
> > 目的のファイルが削除されてしまいます。
> > 
> > 使用方法の誤りをご指摘頂きたいのでお願いいたします。
> > 
> > 
> > <Makefileの内容>
> > ifndef ROOTDIR
> > ROOTDIR = /home/eldev/atmark-dist-20070720
> > endif
> > ROMFSDIR = $(ROOTDIR)/romfs
> > ROMFSINST = romfs-inst.sh
> > PATH := $(PATH):$(ROOTDIR)/tools
> > 
> > UCLINUX_BUILD_USER = 1
> > include $(ROOTDIR)/.config
> > LIBCDIR = $(CONFIG_LIBCDIR)
> > include $(ROOTDIR)/config.arch
> > 
> > romfs:
> > 	$(ROMFSINST) -p 660 /etc/sudoers
> > 	$(ROMFSINST) -a 'Cmnd_Alias FLATFSD /bin/flatfsd' /etc/sudoers
> > 	$(ROMFSINST) -a 'nobody ALL=(root)NOPASSWD:FLATFSD' /etc/sudoers
> > 	$(ROMFSINST) -p 440 /etc/sudoers
> > 
> > # end of Makefile
> > 
> > 
> > <Make時のエラーメッセージ>
> > cp: cannot stat `sudoers': No such file or directory
> > chmod: cannot access
> > `/home/eldev/atmark-dist-20070720/romfs/etc/sudoers': No such file or
> > directory
> > cp: cannot stat `sudoers': No such file or directory
> > chmod: cannot access
> > `/home/eldev/atmark-dist-20070720/romfs/etc/sudoers': No such file or
> > directory
> > 
> > ※なお、make前に
> > /home/eldev/atmark-dist-20070720/romfs/etc/sudoers
> > ファイルが存在していることは確認しています。
> > 
> > 
> > 以上、よろしくお願いいたします。
> > 
> > 
> > _______________________________________________
> > armadillo mailing list
> > email@hidden
> > http://lists.atmark-techno.com/mailman/listinfo/armadillo
> 
> 
> ------------------------------
> 
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/mailman/listinfo/armadillo
> 
> 
> End of armadillo Digest, Vol 49, Issue 3
> ****************************************
> 





armadillo メーリングリストの案内