通常、FTPサーバは、なにもしなくても標準でインストールされます。細かいアクセス制御をするためには、wu-ftpdをインストールする必要があります。今回は、portsを利用します。
よくわかりませんが、たぶん、パッケージをダウンロードしてきてpkg_addすればできあがり。パッケージは、packages/ftp/wu-ftpにあったと思います
# pkg_add wu-ftpd-2.5.0.tgz
/usr/ports/net/wu-ftpdのディレクトリを削除して、最新のportsのディレクトリをダウンロードしてきます。そして、wu-ftpd.-2.5.0.tar.gzをダウンロードしdistfilesにコピーし、portsのディレクトリに移動しインストールします。
# cd /usr/ports/net/wu-ftpd
# make install
/home/ftpをanonymousユーザのホームディレクトリとして作成します。
# mkdir /home/ftp
他に必要なディレクトリを作成します。pubは公開するファイルを置くディレクトリです。binは、lsコマンドをコピーします。
# mkdir /home/ftp/pub
# mkdir /home/ftp/bin
# mkdir /home/ftp/etc
/stand/sysinstallでアカウントを作成します。
「configure」→「networking」→「Anon FTP」を選択するとユーザ登録画面になります。このとき、FTP Root Directryには、/home/ftpを指定します。ウェルカムメッセージを作成するかどうか聞いてきますが、あとで作れるのでここでは、「no」を選択します。
通常、なにも変更しなければ、標準のFTPサーバが起動されますので、/etc/inetd.confの次の行を修正します。
ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l
の行を以下のように変更します。
ftp stream tcp nowait root /usr/local/libexec/ftpd ftpd -al
これで、標準のftpからwu-ftpに変わります。
とりあえず、このファイルだけあればよいです。ftpaccess.exampleをそのまま使用できます。
アクセスを禁止したいユーザを指定します。あらかじめ設定されていますので、特に変更する必要もないでしょう。このファイルは無くてもよいです。
ファイル転送時のファイル圧縮と展開を定義するファイルです。そのまま使いましょう。
これは、先ほど設定したftpaccessにguestgroup定義を1行を追加すると実現できます。class定義のすぐ後に追加すると良いでしょう。
guestgroup users
このusersは、このマシンのアカウントを追加するときに指定したユーザグループです。複数指定する事もできます。その場合は","で区切って羅列します。
設定そのものはこれで良いのですが、このままだとdirectoryの情報を取得することができません。つまり、FTPソフトをつかってアクセスした場合、ログインは成功するのですが、画面になにも表示されない状況に陥ってしまいます。これは通常ftpは/bin/lsを使ってdirectory情報を表示していますが、この場合は、/home/user1が/となっていますので、当然、/home/user1/bin/lsを使ってdirectory情報を表示しようとして、lsがないためになにも表示されないので、/home/user1/binにlsをコピーします。
cp /bin/ls /home/user1/bin/
ユーザのホームディレクトリを作るときにデフォルトでコピーするように設定する事もできます。ユーザのアカウントを作成するときの標準の設定をしておけばよいです。