FTPサーバー環境構築 vsftpd

作業メモ

わけあってUbuntuのテスト機にファイル転送をする必要が生じました。
最近のLinuxディストロにはFTPサーバーはデフォルトでは入っていないようですね。

Ubuntu 12.04
vsftpd 2.3.5-1ubuntu2

・vsftpdをインストール

$ sudo apt-get install vsftpd

・設定ファイルを編集

$ sudo vim /etc/vsftpd.conf
anonymous_enable=NO    # 匿名ログインは拒否
local_enable=YES       # ローカルユーザーログインを許可
write_enable=YES       # 書き込み許可

・サービス再起動

$ sudo /etc/init.d/vsftpd restart

リモートのOS XからFTP接続、ファイルのアップロードができました。
すんなりいってよかったです。

  • -

2013年7月30日 追記
初回起動時は、上記の手順でうまくFTPアクセスできたのですが、いったんサーバーを落として、後日、ftp接続したときに、うまく動きませんでした。

$ ftp localhost
Connected to localhost.
500 OOPS: vsftpd: not found: directory given in 'secure_chroot_dir':/var/run/vsftpd/empty

secure_chroot_dirという設定項目のディレクトリが存在しないというエラーです。

secure_chroot_dir (Default:/usr/share/empty)
vftpdがファイルアクセスを要求しないときに使用するディレクトリを指定します。

ファイルアクセスを要求しないときに使用するディレクトリ・・・?

よくわかりませんが、私の環境では、secure_chroot_dirには、/var/run/vsftpd/emptyが設定されていました。このディレクトリを作ることによって、エラーは発生しなくなりました。

sudo mkdir -p /var/run/vsftpd/empty
  • -

2013年8月7日 さらに追記
/var/run以下のファイル、ディレクトリは、メモリベースのファイルシステムなので、OS再起動ですべて消えてしまうみたいです。