这两天在虚拟机里安装了一台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。