在虚拟机里安装了一台Ubuntu 13.04的服务器版,装完后配置了vsftp服务器,发现和CentOS 6下的vsftp有些不同,查了几天资料总算弄好了,放到这记录一下。
1、安装vsftp,这个简单
sudo apt-get install vsftpd
2、配置/etc/vsftpd.conf
3、保存退出,重启vsftp服务
sudo service vsftpd restart
打开filezilla连接ftp,显示找不到/etc/vsftpd.userlist,centos里这个文件是/etc/vsftpd/userlist,只好新建/etc/vsftpd.userlist文件,然后把要登录的用户名写进去;再连,显示530错误,没有权限。奇怪,在centos里这么配就已经可以访问了,ubuntu却不行,最后发现,在ubuntu里必须加上chroot_list_enable=YES和chroot_list_file=/etc/vsftpd.chroot_list。
重新编辑/etc/vsftpd.conf如下:
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
xferlog_enable=YES
xferlog_std_format=YES
connect_from_port_20=YES
pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd.user_list
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
重启vsftp,访问正常。
如果userlist_enable=YES且userlist_deny=NO,则只有vsftpd.user_list中的用户可以访问;当userlist_enable=YES且userlist_deny=YES,则除了vsftpd.user_list中的用户其余用户都可以访问。
如果chroot_local_user=NO 且 chroot_list_enable=YES时,除了chroot_list_file文件指定的用户其余的用户都可以执行chroot;当chroot_local_user=YES 且 chroot_list_enable=YES时,只有chroot_list_file文件中指定的用户可以执行chroot。