linuxでtftpサーバの設定

今日、研究で使っているPCクラスタのネットワークスイッチ(CISCO製)の設定を変更した。実際には設定をファイルにダンプして、そのファイルを編集しただけで、まだ変更の反映はしていないんだけども。このとき、スイッチから設定ファイルをTFTPサーバにダンプしたわけだけど、そのTFTPサーバの設定にちょっと躓いたので、メモ。

サーバ Debian 3.1
TFTPサーバパッケージ tftpd-hpa
サーバ起動モード xinetd経由
サーバ起動オプション -c -s /var/lib/tftpboot
/var/lib/tftpbootパーミッション 777

サーバにはちょっと古いDebian Sargeシステムを使用。TFTPサーバにはtftpd-hpaを使用。TFTPの使用頻度は少ないのでxinetd経由で起動することにした。/etc/xinetd.confに以下の内容を追加。パッケージインストール時に/etc/inetd.confにはtftpのエントリを追加してくれていたんだけど、なぜか実際に使用しているxinetdの設定ファイルは更新してくれなかった。

service tftp
{
        socket_type     = dgram
        protocol        = udp
        wait            = yes
        user            = root
        server          = /usr/sbin/in.tftpd
        server_args     = -c -s /var/lib/tftpboot
}

今回はスイッチからサーバにファイルを書き込むので、リモートホストからファイルをアップロードできるように、サーバの起動オプションに「-c」を追加。-cは新規ファイル作成を許可するオプション。また、tftpで使用するディレクトリにも書き込み権限が必要なので、/var/lib/tftpbootのパーミッションを777にした。書き込み許可の設定をするところでちょっとはまってしまった。