TFTPD(8)

名称
tftpd - インターネット TFTP (Trivial File Transfer Protocol) サーバ

書式
/usr/libexec/tftpd [-l] [-n] [-s directory] [directory ...]

解説
tftpd は、インターネット TFTP プロトコル ( RFC 783 ) を提供するサーバです。 TFTP サーバは、 ‘tftp’ サービス定義で指示されたポートを操作します。 services(5) を参照してください。 このサーバは普通 inetd(8) によって起動されます。

tftp(1) の利用には、リモートシステムのアカウントやパスワードを必要としません。 認証情報がありませんので、 tftpd はパブリックに読み込み可能なファイルだけしかアクセスを許可しません。 文字列 ``/../'' を含んだファイル、もしくは ``../'' から始まるファイルのアクセスは許可されません。 ファイルは、既に存在してパブリックに書き込み可能な場合だけ 書き込まれます。 “パブリック (public)” という概念は、ネットワークを通して到達可能な全てのホストの全てのユーザ を含むように拡張されている点に注意してください。 これは全てのシステムにおいて適当ではないかも知れないし、 そのことは tftp サービスを有効にする前に考慮すべきです。 サーバは、もっとも可能な限り小さな権限を持ったユーザ ID を 持たねばなりません。

ファイルへのアクセス制限は、 tftpd 起動時のディレクトリリストを、 /etc/inetd.conf にサーバプログラムへの引数として 20 までのパス名を指定することにより可能です。 この場合、アクセスは、ファイル名がそこで与えられたディレクトリを 頭に付けたものに制限されます。 与えられたディレクトリは、相対ファイル指定要求に対しての探索パスと しても利用されます。

chroot オプションは、 tftpd のアクセスを chroot されたファイルシステム だけに制限することで、セキュリティを追加します。 これは、ブートサーバとして -s を提供している OS から実行する時に便利です。 chroot の実行は root に制限されていますので、 tftpd は root で 実行しなければなりません。しかしながら、 chroot した場合、 tftpd はユーザ id を nobody に設定します。

以下のようなオプションがあります。

-l  全ての要求を、 syslog(3) のファシリティ LOG_FTP を使って、ログ保存します。 注釈: syslog 設定ファイル syslog.conf(5) においても、LOG_FTP メッセージのログ機能を有効とする必要があります。

-n  存在しない相対ファイル名に対する要求の否定応答を抑止します。

-s directory
    コマンドを受け取る前に tftpd を directory へ chroot させます。更に、ユーザ id を nobody にします。

    -s を使用しない場合、ユーザ id の変更は試みられません。 -s を使用しない場合は、 tftpd を root で実行してはなりません。

関連項目
tftp(1), inetd(8), syslogd(8)

歴史
tftpd コマンドは、 4.2BSD から導入されました。