近日在ubuntu 14.04.1上安装配置vsftp 3.0.2,安装过程及配置总结如下:
配置前已创建ftp根目录/home/frank/ftp并设置好权限
1.安装vsftp:
$sudo apt-get install vsftpd
2.修改/etc/shells文件,如果文件中没有则增加行/usr/sbin/nologin以避免错误:530 login incorrect
$sudo vi /etc/shells
/usr/sbin/nologin
3.添加ftp用户(admin)
$sudo useradd --home-dir /home/frank/ftp -g ftp --shell /usr/sbin/nologin admin
$sudo passwd admin
4.修改vsftpd.conf
$sudo vi /etc/vsftpd.conf
local_enable=YES
write_enable=YES
local_umask=007 #设置上传文件默认权限掩码,默认屏蔽其它用户任何权限,开放自己及组用户权限
allow_writeable_chroot=YES #如果没有则增加此行避免错误:500 OOPS: vsftpd: refusing to run with writable root inside chroot ()
#以下配置设定所有用户被限制在主目录,但在/etc/vsftpd.chroot_list文件中列出的用户除外
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
#以下配置只有在文件/etc/vsftpd.user_list中被列出的用户才被允许登陆
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd.user_list
5.修改/etc/vsftpd.user_list,添加允许登陆用户,每用户占一行
$sudo vi /etc/vsftpd.user_list
admin
6.重启vsftpd:
$sudo restart vsftpd
附vsftpd.conf配置说明
a. ftp黑名单文件/etc/ftpusers不受任何配置项影响,而且一直有效,其中存放的是一个禁止访问FTP的用户列表
b. userlist_enable,userlist_deny,userlist_file配置
b-1. 当userlist_enable=NO时,所有用户被允许登陆,此时userlist_deny和userlist_file配置失效;
b-2. 当userlist_enable=YES时
若userlist_deny=YES,则userlist_file配置文件中将列出禁止登陆的用户,其它用户允许登陆
若userlist_deny=NO, 则userlist_file配置文件中将列出允许登陆的用户,其它用户禁止登陆
c. chroot_local_user, chroot_list_enable,chroot_list_file配置
c-1. 当chroot_local_user=YES,则所有用户被限制在主目录,除非有例外情况;
当chroot_local_user=NO,则所有用户不被限制在主目录,除非有例外情况
c-2. 当chroot_list_enable=YES,则chroot_list_file配置文件中列出例外用户,每用户占用一行
当chroot_list_file=NO,则无例外情况,chroot_list_file配置文件不起作用