tftpd デーモン
目的
トリビアル・ファイル転送プロトコル用のサーバー機能を提供します。
構文
/usr/sbin/tftpd [ 「-c」 ] [ N ] [ P- ] [ -v (V) ] [ T ] [ -s ] [ -x (X) ] [ -z ] [ -d 年 ディレクトリー] [ - オプション]
説明
注: tftpd デーモンは通常、 inetd デーモンによって始動されます。 これは、SRC コマンドを使用してコマンド・ラインから制御することもできます。
/usr/sbin/tftpd デーモンはトリビアル・ファイル転送プロトコル (TFTP) サーバーを実行します。 TFTP を使用して送信されたファイルは、 tftp または utftp コマンド行に指定された絶対パス名で指定されたディレクトリーにあります。
tftpd デーモンへの変更は、System Management Interface Tool (SMIT) もしくはシステム・リソース・コントローラー (SRC) を用いて /etc/inetd.conf または /etc/services ファイルを編集して行うことができます。 tftpd デーモンは、/etc/inetd.conf ファイル内でコメントが解除されていれば、デフォルトで始動されます。
inetd デーモンは、その情報を /etc/inetd.conf ファイルと /etc/services ファイルから取得します。
/etc/inetd.conf または /etc/services ファイルを変更した後、 refresh -s inetd または kill -1InetdPID コマンドを実行し、inetd デーモンにその構成ファイルに対する変更内容を知らせます。
tftpd サーバーには、最低限度の特権を持つユーザー ID がなければなりません。 nobody ID には最低限の権限が与えられ、これがデフォルト・ユーザー ID です。
tftpd デーモンは、System Management Interface Tool (SMIT) を使用するか、/etc/inetd.conf ファイルを変更するかして制御しなければなりません。 次のように入力します。tftpdコマンド行での使用は推奨されません。
tftpd サーバーはマルチスレッド・アプリケーションであり、オプション・ネゴシエーション (RFC2349) を処理できます。 この機能により、 クライアントが転送するファイル・サイズを折衝できます。 また、タイムアウトとブロック・サイズの拡大も可能です。 ブロック・サイズ (blksize) は、読み取り要求 (RRQ) の場合にのみ折衝されます。 その結果、TFTP を使用するディスクレス・ノードのブート時のパフォーマンスを著しく向上できます。
読み取り要求と書き込み要求の両方の転送サイズ・オプション (tsize) の折衝により、転送前にファイル・サイズを認識することができます。転送の開始前に割り振りを超過した場合は、エラー・メッセージが出されます。 タイムアウト・オプション (timeout) を使用すると、クライアントとサーバーは再送タイムアウト (1 秒から 255 秒まで) をネゴシエーションすることができます。 オプション・ネゴシエーションを行うには、 tftp クライアントも RFC2349 をサポートしている必要があります。
tftpaccess.ctl ファイル
/etc/tftpaccess.ctl ファイルで始まる行が検索されます。allow:またはdeny:. その他の行は無視されます。 ファイルが存在しない場合は、アクセスは許可されます。 許可されたディレクトリーとファイルから禁止されたディレクトリーとファイルを除いたものが、アクセス可能です。 例えば、/usr ディレクトリーは許可されていますが、/usr/ucb ディレクトリーは許可されていないものとします。 このことは、/usr ディレクトリー内の /usr/ucb ディレクトリーを除くすべてのディレクトリーとファイルがアクセス可能であることを意味します。 /etc/tftpaccess.ctl ファイル内のエントリーは、絶対パス名でなければなりません。
/etc/tftpaccess.ctl ファイルは、root ユーザーが書き込み専用で、すべてのユーザーが読み取り可能でなければなりません。groupsおよびothers(つまり、所有者root許可が 644 の場合)。 ユーザーnobody/etc/tftpaccess.ctl ファイルを読み取ることができなければなりません。 そうでないと、tftpd デーモンはファイルの存在を認識できず、全システムへのアクセスを許可します。 詳細な情報については、/usr/samples/tcpip ディレクトリー内にあるサンプルの tftpaccess.ctl ファイルを参照してください。
検索アルゴリズムは、tftp コマンドで使用されるローカル・パス名が絶対パス名であることを前提としています。 /etc/tftpaccess.ctl ファイルを検索して、以下を探します。allow:/ これは、ファイル・パス名から次のコンポーネントを追加することによって構成された各部分パス名を持つ、許可されたパス名を繰り返し検索します。 一致する最長パス名が許可パス名です。 その後、一致する最長許可パス名から開始して、禁止名に対して同じことを行います。
例えば、ファイル・パス名が /a/b/c であり、 /etc/tftpaccess.ctl ファイルに以下が含まれているとします。allow:/a/bおよびdeny:/a1 つの許可された一致が作成されます (/a/b) 以下で始まる拒否された一致はありません/a/b作成され、アクセスが許可されます。
/etc/tftpaccess.ctl ファイルに以下のものが含まれているとします。allow:/aおよびdeny:/a/b1 つの許可された一致が作成されます (/a) そして、1 つの拒否された試合は、/a(/a/b) 作成され、アクセスは拒否されます。 /etc/tftpaccess.ctl ファイルに以下のものが含まれているとします。allow:/a/bまた、deny:/a/b許可された名前が最初に検索されるため、アクセスは拒否されます。
システム・リソース・コントローラーによる tftpd デーモンの操作
tftpd デーモンは、 システム・リソース・コントローラー (SRC) のサブシステムである inetd デーモンのサブサーバーです。 また、tftpd デーモンは tcpip SRC サブシステム・グループのメンバーです。 このデーモンは、/etc/inetd.conf ファイル内でコメントを外すと使用可能になり、次の SRC コマンドで操作できます。
| 項目 | 説明 |
|---|---|
| startsrc | サブシステム、サブシステムのグループ、サブサーバーのいずれかを始動します。 |
| stopsrc | サブシステム、サブシステムのグループ、あるいはサブサーバーを停止します。 |
| lssrc | サブシステム、サブシステムのグループ、 あるいはサブサーバーのトレースの状況を取得します。 |
フラグ
| 項目 | 説明 |
|---|---|
| -c | 初期スレッドを除く、プロセス単位の並行スレッドの最大数を指定します。 |
| -d ディレクトリー | デフォルトの宛先ディレクトリーを指定します。 Directory に指定されたディレクトリーは、 ファイルの保管専用のホーム・ディレクトリーとして使用されます。 このデフォルト・ディレクトリーは、絶対パス名が指定されていない場合に使用されます。 ファイル検索のデフォルト・ディレクトリーは /tftpboot です。 |
| -i | エラー・メッセージと呼び出し側のコンピューターの IP アドレスをログに記録します。 |
| -n | リモート・ユーザーがユーザー・コンピューター上でファイルを作成できるようにします。 このフラグが指定されない場合に、リモート・ユーザーが唯一行えるのは、他のファイルの読み取りアクセス権でファイルを読み取ることです。 |
| -p | 着信要求用のポート番号を指定します。 |
| -r Option | 無効にする tftp オプション・ネゴシエーションを指定します。 複数の -r フラグを使用できます。 例えば、 /etc/inetd.conf ファイルの以下の行は、 tsize および blksizeのオプション・ネゴシエーションを使用不可にします。 |
| -s | ソケット・レベルのデバッグをオンにします。 |
| -t | データグラムのタイムアウト値を指定します。 |
| -v | tftpd デーモンが正常にファイル転送すると通知メッセージをログに記録します。 このログ記録によって、どのシステムとの間で tftpd デーモンでファイルをリモート転送しているかを追跡しつづけます。 |
| -x | データグラム待機の最大タイムアウト時間を指定します。 |
| -Z | 転送に使用できる最大セグメント・サイズを指定します。 |
例
注: tftpd デーモンの引数は、SMIT を使用するか、または /etc/inetd.conf ファイルを編集することによって指定できます。
- tftpd デーモンを始動するには、次のように入力します。startsrc -t tftpこのコマンドは tftpd サブサーバーを始動します。
- tftpd デーモンを正常に停止するには、次のように入力します。stopsrc -t tftpこのコマンドは、保留状態の接続をすべて開始し、既存の接続を完了します。しかし、新しい接続の開始は行いません。
- tftpd デーモンおよびすべての tftpd 接続を強制的に停止するには、次のように入力します。stopsrc -f -t tftpこのコマンドによって、保留状態の接続と既存の接続がすべて即座に終了します。
- tftpd デーモンに関する簡略状況報告書を表示するには、次のように入力します。lssrc -t tftpこのコマンドは、デーモンの名前、プロセス ID、および状態 (アクティブまたは非アクティブ) を返します。