FTPUSERS(5)

名称
ftpusers, ftpchroot - ftpd(8) アクセス制御ファイル

解説
どのユーザがログインできるかを ftpusers ファイルに定義することで、 ftpd(8) に対するユーザのアクセスを制御できます。

ftpusers ファイルが存在しない場合、すべてのユーザがアクセスできなくなります。

“\” はエスケープ文字です。つまり、コメント文字の意味をエスケープする ために用いることができ、またある行の最後にこの文字がある場合、 設定ディレクティブが複数行にまたぐようになります。 “#” はコメント文字であり、この文字から行末までの文字はすべて無視 されます (ただし、この文字がエスケープ文字によってエスケープ されている場合は除きます)。

各行の文法は次の通りです:
    userglob[:groupglob][@host] [directive [class]]

これらの要素は次の通りです:

userglob
    fnmatch(3) のグロブマッチング を用い、ユーザ名に対してマッチがとられます (例えば ‘f*’) 。

groupglob
    fnmatch(3) のグロブマッチング を用い、ユーザの所属するすべてのグループに対してマッチがとられます。 (例えば ‘*src’) 。

host
    リモートホストのアドレス に対してマッチする CIDR アドレス ( inet_net_pton(3) を参照) (例えば ‘1.2.3.4/24’) もしくは リモートホスト名 に対してマッチがとられる fnmatch(3) グロブ (例えば ‘*.netbsd.org’) です。

directive
    これが “allow” もしくは “yes” である場合、指定のユーザはアクセス許可されます。 “deny” もしくは “no” である場合、あるいは directive が与えられていない場合には、指定のユーザはアクセス拒否されます。

class
    ftpd.conf(5) が用いるクラスを定義するものです。

class が定義されていない場合には、次のいずれか 1 つにデフォルト 設定されます:

chroot
    ユーザにマッチするものが /etc/ftpchroot ファイル内に存在する場合。

guest
    ユーザ名が “anonymous” か ‘ftp’ のいずれかである場合。

real
    先の 2 つのどちらでもない場合。

ひとたびマッチに成功すると、それ以上の比較は行いません。 マッチするものが見つからない場合は、そのユーザはアクセスを 許可されます。 この文法は以前との互換性を保つものです。

ユーザが guest でのログインを要求してきた場合、 ftpd(8) サーバは “anonymous” と “ftp” のいずれでもアクセスできることを確認します。 そのため、デフォルトですべてのユーザを拒否している場合、 guest でのログインを可能にするために /etc/ftpusers ファイルに “anonymous allow” と “ftp allow” という行を追加する必要があります。

  /etc/ftpchroot
/etc/ftpchroot ファイルは、セッションのルートディレクトリを ftpd.conf(5) の chroot ディレクティブ (設定されていれば) で指定されているディレクトリ もしくはユーザのホームディレクトリに ( chroot(2) を使って) 変更するユーザが誰であるのかを決定するのに使われます。 このファイルが存在しない場合、ルートディレクトリの変更は行われません。

このファイルの文法は ftpusers と似ていますが、 class 引数が無視される点が違います。 明確にマッチするものが存在する場合、セッションのルートディレクトリが 変更されます。いったんマッチが成功するとそれ以上の比較は行いません。 この文法は以前との互換性を保つものです。

関連ファイル
/etc/ftpchroot
    FTP セッションでのルートディレクトリを chroot(2) を用いて変更する一般ユーザのリストです。
/etc/ftpusers
    このファイルです。
/usr/share/examples/ftpd/ftpusers
    ftpusers のサンプルファイルです。

関連項目
fnmatch(3), inet_net_pton(3), ftpd.conf(5), ftpd(8)