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

nakai email@hidden
2008年 5月 2日 (金) 19:35:42 JST


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 メーリングリストの案内