Flucardのautorun.shを編集


とんすけぶろぐ: FlucardでプログラムとかCGIとかにて配布されているやつを使う時に、この機能は使いたいが、これはいらない、といった好みが分かれるかも?と感じた。

なので、設定ファイルでon/offできるようにしてみた。
Flucardの管理WebからファイルをアップロードするとDCIM/122_TREK/ にファイルがおけるので、そこを見るように作成した。

設定ファイルの「no」と「yes」を変更することで、機能のon/offができるようになっている。
設定を変更したい場合は、管理Webから編集したfluconfig.txtをアップロードしてから、flucardを抜き差しし、再度立ち上げれば反映されるはず。

設定ファイル: DCIM/122_TREK/fluconfig.txt

ADDFILES=no
REPLACEBUSYBOX=no
REPLACEFTPD=no
REPLACETCPSVD=no
ENABLEHTTPD=no
ENABLEFTPD=yes
ENABLETELNETD=yes
ENABLESSHD=yes

これを使うautorun.shの内容

#!/bin/sh

sdstore=/mnt/sd/DCIM/122_TREK
sdconfigfile=/mnt/sd/DCIM/122_TREK/fluconfig.txt

if [ -f $sdconfigfile ];
then
	. $sdconfigfile
fi

if [ "$ADDFILES" = "yes" ];
then
	ln -s $sdstore/bin/* /bin/
	ln -s $sdstore/usr/bin/* /usr/bin/
	ln -s $sdstore/usr/local /usr/local
	ln -s $sdstore/usr/lib /usr/lib
	ln -s $sdstore/usr/include /usr/include
	ln -s $sdstore/usr/libexec /usr/libexec
	ln -s $sdstore/sbin/* /sbin/
	ln -s $sdstore/lib/* /lib/
	ln -s $sdstore/etc/* /etc/
	ln -s $sdstore/www/* /www/
	ln -s $sdstore/www/cgi-bin/* /www/cgi-bin/
fi

if [ "$REPLACEBUSYBOX" = "yes" ];
then
	ln -s $sdstore/busybox /bin/awk
	rm /bin/dd
	ln -s $sdstore/busybox /bin/dd
	ln -s $sdstore/busybox /bin/find
	ln -s $sdstore/busybox /bin/grep
	ln -s $sdstore/busybox /bin/hexdump
	ln -s $sdstore/busybox /bin/killall
	ln -s $sdstore/busybox /bin/less
	ln -s $sdstore/busybox /bin/passwd
	ln -s $sdstore/busybox /bin/sed
	ln -s $sdstore/busybox /bin/tar
	ln -s $sdstore/busybox /bin/telnetd
	ln -s $sdstore/busybox /bin/watch
	ln -s $sdstore/busybox /bin/whoami
fi

if [ "$REPLACEFTPD" = "yes" ];
then
	rm /usr/sbin/ftpd
	ln -s $sdstore/busybox /usr/sbin/ftpd
fi

if [ "$REPLACETCPSVD" = "yes" ];
then
	rm /usr/bin/tcpsvd
	ln -s $sdstore/busybox /usr/bin/tcpsvd
fi

if [ "$ENABLEHTTPD" = "yes" ];
then
	killall httpd
	sleep 1
	httpd -h /www -c /etc/httpd.conf&
fi

if [ "$ENABLEFTPD" = "yes" ];
then
	$sdstore/busybox tcpsvd 0.0.0.0 21 ftpd -w /&
	sleep 1
fi

if [ "$ENABLETELNETD" = "yes" ];
then
	killall telnetd
	sleep 1

	mount -t devpts /dev/pts
	$sdstore/busybox telnetd -l /bin/sh &
	sleep 1
fi

if [ "$ENABLESSHD" = "yes" ];
then
	dropbear -A -N root -C admin -U 0 -G 0
	sleep 1
fi

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください