Logo address

ftpd

目次

2001/06/12
2000/10/14

読者は ftp://plan9.aichi-u.ac.jp が他の ftp サーバとディレクトリ構成が異なっていることに気付いているだろうか?
そう

	/dev
	/etc
	/bin
が存在しないのである。(これらは UNIX の公開ftpサーバでは必須であることに注意する。) 、/incomming を置いていないのは、筆者の趣向である。受け入れディレクトリは現在では利益よりも害の方が大きいと判断しているからである。だから /pub を置かないでいきなり公開ファイルを置いている。

システム設定

------ /rc/bin/service/tcp21 -----------
#!/bin/rc
exec /bin/aux/ftp -n/lib/namespace.ftp $*
公開をする場合には
exec /bin/aux/ftp -a -n/lib/namespace.ftp $*
とする。
UNIX と異なり公開 ftp サーバの設定は非常に簡単である。
ftpd 用の特別な空間を構成する必要は無い。
アクセス空間の編成は /lib/namespace.ftp で行う。
------- /lib/namespace.ftp -------------
# bootes' root
mount -a #s/boot /
# visible things go here
bind  /usr/arisawa/netlib /usr/none
# this cuts off everything not mounted below /usr/none
bind /usr/none /
Plan9 ではこれだけで ftp のアクセス空間を閉ざしてしまう。異なるディレクトリのファイルを ftp のアクセス空間に纏めることも容易である。ftpd はこの空間の中でサービスを行っている。

UNIX との違い

UNIX の公開 ftp サーバは空間を制限する代償として制限された空間の中に /dev, /etc/passwd, /bin/ls を置いていた。Plan9 の ftpd は ls を内部に持っている。従ってアクセス空間の中にファイルを実行する機能は不要である。またそのような危険な機能は持たない。/incomming の中のファイルを除けば、どのファイルも読み取りだけができる。

Plan9 の匿名 ftp は UNIX と異なりクラッキングされる心配が遥かに少ない、安心できるサービスである。

注: gnu の ftpd は、これまでの病的な UNIX の ftpd と異なるものを運用している。
bash$ ftp ftp.gnu.org
Connected to ftp.gnu.org.
220 ProFTPD 1.2.0pre10 Server (ProFTPD) [gnuftp.gnu.org]
...

このシステムは /dev /etc を公開ディレクトリの中に持たない。
/bin は持っているが、ls のように、リモートユーザがコマンドとして実行する
ファイルではなく、ftpd がファイルの圧縮をしたり、解いたりするためのものである。