友人の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
既に変更してあった項目は省略する。
- 今回の使用用途が"特定のユーザ"に限られた為、「匿名ログインを可」を不可にする
- ローカルユーザのログインを不可」を可にする
- 「ユーザ設定ファイルの場所の指定」をしない
# /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の全てをまとめない理由がよくわからないが…。