vsftpdでchrootを設定されたユーザーは、デフォルトで読み込み権限のみ入っている状態しか許可されない縛りがあるようです。
vsftpdのchrootを使用すると、設定ファイル内のchrootリストに列挙されたユーザーは自分のホームフォルダがルート(/)ディレクトリとなり、それよりも上階層のディレクトリへの移動が不能になります。
この設定を入れておくことでftpユーザーに他ユーザーのファイルの閲覧・変更やシステムファイルへのアクセスを防止することができます。
vsftpdでは、chroot指定されたユーザーのルートディレクトリは読み込み権限のみでなければならず、書き込み権限が付与されているとftpログイン時に
OOPS: vsftpd: refusing to run with writable root inside chroot()
エラーがでて接続が切られてしまいます。
でもいくらchrootしているとは言えどファイルをおけないのは困ってしまうので、この制限を回避する設定をvsftpdに入れ込みます。
allow_writeable_chroot=YES
この1行を
/etc/vsftpd/vsftpd.conf
に書き込んでおくだけでchrootユーザーのルートディレクトリに書き込み権限があってもエラーが出ず、正常に使用できるようになります。
同じエラーでお困りの方は確認してみてください。
vsftpdの設定で謎のエラーにハマった – TomoProgの技術書