hogashi.*

日記から何から

vsftpdのインストール

 友人のubuntuにvsftpdのインストール/設定をした時の手順が面倒だったので纏める、つもりだったのをすっかり忘れていたので纏める。OSはUbuntu 12.04.5 LTS。

手順

 「apt-getでインストールして、設定をいじった上で、それでも上手く動かない」との旨で頼まれた。
 インストールは以下。

% apt-get install vsftpd

 ここから設定するためにdpkgconfigureコマンドを用いたが、思うように設定できなかったので、設定ファイル(/etc/vsftpd.conf)をいじる。*1

/etc/vsftpd.conf

 概ね参考にしたページは以下である。
> Fedora 20 - FTPサーバー - Vsftpd インストール : Server World

 既に変更してあった項目は省略する。

  1. 今回の使用用途が"特定のユーザ"に限られた為、「匿名ログインを可」を不可にする
  2. ローカルユーザのログインを不可」を可にする
  3. 「ユーザ設定ファイルの場所の指定」をしない
# /etc/vsftpd.conf
# 前略
#anonymous_enable=YES
anonymous_enable=NO  # 1.
# 中略
#local_enable=NO
local_enable=YES  # 2.
# 中略
# 追加した部分↓
local_root=www
use_localtime=YES
#seccomp_sandbox=NO  # エラーが出たのでコメントアウト
#user_config_dir=/etc/vsftpd/ # 3.

 編集を保存し、設定を反映させるためにvsftpdを再起動する。

% /etc/init.d/vsftpd restart

留意点

 dpkgconfigureを用いる場合、"ディレクトリ設定"のパスはホームディレクトリが基準の相対パス(しかもチルダなどはエスケープされる)なので、「~/hoge」とか入力すると「~/\~/hoge(ホームディレクトリ以下のチルダディレクトリ以下のhogeディレクトリ)」が作られて非常に厄介なので気を付ける。
 もし「~/\~/hoge」なんてディレクトリができてしまったら、下から順に「rmdir」するか、「rm -r \~」とエスケープして削除する(エスケープを忘れるとホームディレクトリ以下が全削除されるので気を付ける)。

*1:/etc/vsftpd/ にvsftpdの全てをまとめない理由がよくわからないが…。