chrootの設定
基本的には guestgroup にグループ名を追加するだけで chroot される。

# class    クラス名    タイプリスト    アクセス元リスト
class    anon       anonymous    *
class    remote    real,guest     *
# guestgroup に chroot したいグループを追加する。
guestgroup    user
class
指定したタイプリストに属するアカウント及びアクセス元リストに一致したアカウントをクラス名にカテゴライズする。
クラス名は好きな名前を付与できるが、タイプリストやグループに使われている名前は使わない方がよいだろう。
なお、ここで設定しなかったアカウントは ftp ログオンできない。
タイプリストの意味は次の通り。

real
とは/etc/passwd に記述されているユーザーからのアクセス
guest
guestgroup に指定されているアカウントからのアクセス
anonymous
anonymous からのアクセス

クラス名は ftpaccess 内の各所で使われるが、特に特殊な設定を施さない限りは

class    all    real,guest,anonymous    *
と設定しておけば、anonymous を含む全てのユーザーが ftp に対してアクセスできる。

guestgroup
指定した group を持っているユーザーに対して chroot を行う。
また、class の guest にカテゴライズされる。
chrootされるディレクトリの設定
chroot されるディレクトリには少しのコマンドとファイルをコピーしなければならない。

ディレクトリ/ファイル名パーミッション
/$HOME/$USER/bin/111
/$HOME/$USER/bin/ls111
/$HOME/$USER/bin/gzip111
/$HOME/$USER/etc/111
/$HOME/$USER/etc/group444
/$HOME/$USER/etc/pwd.db444

多少セキュリティを考慮した設定
以下のようなポリシーで設定を行う。

### クラスの設定
# anonymous アクセスに対しては "anon" というクラス名を付与。
class   anon     anonymous   *
# /etc/passwd に記載されたユーザー及び guestgroup で指定されたユーザーからの
# アクセスに対しては "remote" というクラス名を付与。
class   remote   real,guest  *

### chroot の設定
# user グループを guestgroup として設定する → chroot を行う
# class で guest を指定しない場合は指定すると real タイプリストのグループも
# ログオンできなくなるので注意。
guestgroup user

# クラス名 "anon" の同時ログオン数を 20とし、全ての時間帯において適用する。
limit  anon  20  Any  /etc/msgs/msg.dead
# 3回ログオンに失敗すると切断する。
loginfails 3

### メッセージ表示設定
### 表示されるファイルの位置は chroot が適用される。
# クラス名 "anon" がログオンしたとき /etc/msgs/welcome.msg を表示する。
message  /etc/msgs/welcome.msg  login  anon
# クラス名 "remote" がログインしたとき /README.txt を表示する。
message  /README.txt   login  remote
# 全てのディレクトリに移動する際に、カレントディレクトリにある
# .message を表示する。
message  .message  cwd=*

### ログ取得に関する設定
# 使用したコマンドを記録する。
log   commands   anonymous,real,guest
# 転送したファイル名を送受信両方で記録する。
log   transfers  anonymous,real,guest   inbound,outbound
# セキュリティ違反 (パスワード間違いなど) の内容を記録する。
log   security   anonymous,real,guest

### 実行制限
### 指定したタイプリスト (anonymous/real/guest) に対して実行制限を行う。
# anonymous に対して以下の制限を課す。
delete    no  anonymous
chmod     no  anonymous
umask     no  anonymous
overwrite no  anonymous
rename    no  anonymous

# anonymous アクセスに対するパスワードチェックのレベルを設定する。
# パスワードに @ が含まれていることが条件 (trivial) で、そうでない場合は
# 警告を出して強制切断を行う (enforce)。
passwd-check   trivial   enforce

# 900秒間何もない状態が続けば切断する。
timeout idle 900

# 全ての接続元に対して Passive モードで使用するポート番号を 7300 〜 7800 に
# 限定する。
# この場合、7300 〜 7800 をダイヤルアップルーターで ftp サーバーに
# リダイレクトする設定を行っておく事。
passive ports 0.0.0.0/0 7300 7800