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