複数のCiscoスイッチとルーターを備えた52 uラックがあります。また、kvmがインストールされたubuntuサーバーもあります。私は、tftpサーバーとして使用するためにubuntu 12.04をインストールしたvm w /を作成し、それとネットワーク機器との間でイメージを転送しました。このサイトなどのさまざまなガイドに従って、tftp-hpa、tftpd-hpa、xinetdをインストールしました。
多大な苦痛とフラストレーションの後、ホスト上でローカルに、またWindowsマシンからtftpできました。問題は、次のコマンドを使用して、/ var/lib/tftpbootディレクトリの「nobody」ユーザーの下にあるサーバーにアップロードするファイルごとに空のファイルを作成する必要があることです。
Sudo -u nobody sh <<< "cd /var/lib/tftpboot; touch filename; chmod 777 filename"
BOTTOM LINE UP FRONT:上のコマンドを使用して最初にファイルを作成することなく、必要なファイルを「tftp put」できるようにしたいだけです。高価なものを壊し始める前に私を助けてください! xinetd.dのtftp構成は次のとおりです。
service tftp
{
disable = no
socket_type = dgram
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -v -s /var/lib/tftpboot
}
tftpdのマンページ から:
--create, -c
Allow new files to be created. By default, tftpd will only
allow upload of files that already exist. Files are created
with default permissions allowing anyone to read or write them,
unless the --permissive or --umask options are specified.
server_args
を次のように変更します。
server_args = -c -v -s /var/lib/tftpboot
Tftpdを起動して実行するためにxinetdは必要ありません。これは私がtftpdをインストールして設定する方法です:
Sudo aptitude install tftpd-hpa
Sudo chown -R tftp /var/lib/tftpboot
/ etc/default/tftpd-hpaを編集して、-c
をTFTP_OPTIONS
に挿入します。行は次のようになります。
TFTP_OPTIONS="--secure -c"
最後に、tftpdサービスを再起動します。
Sudo service tftpd-hpa restart