vsftpdでユーザー制限とディレクトリ制限をする

vsftpdでユーザー制限とディレクトリ制限をするには以下の方法をとる。いずれも/etc/vsftpd/vsftpd.conf を編集する。
ユーザー制限
ユーザー制限を行う場合(許可するユーザーが少ない場合)
userlist_enable=YES
userlist_deny=NO
を登録し、
/etc/vsftpd/user_list
にログインを許可ユーザーを記録する。
ユーザー制限を行う場合(拒否するユーザーが少ない場合)
userlist_enable=YES
userlist_deny=YES
を登録し、
/etc/vsftpd/user_list
にログインを拒否したいユーザーを記録する。
ディレクトリ制限
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
を登録し、
/etc/vsftpd/chroot_list
に制限したいユーザーを記録する。なお、vsftpdの場合には、特定のユーザーを特定のディレクトリに制限すると言った細かい制限ではなく、ログインディレクトリをルートディレクトリとするかどうかと言う設定になる。

activeモードとpassiveモード

FTPにはactiveモードとpassiveモードがある。
これらはlinuxのftpコマンドではpassiveコマンドによって切り替えられる。
-nオプションを使うことでFTP通信を自動化することができる。
以下をhogehogeで保存する。
————-hogehoge———
open hogehoge.com
user hoge_user hoge_pass
binary
get hoge_file
bye
——————————

ftp -n < hogehoge
といった感じだ。