使用apt-get install vsftpd安装完后,启动ftp。然后使用本地用户不能登录的解决方法。


sudo apt-get remove vsftpd

sudo rm /etc/pam.d/vsftpd

sudo apt-get install vsftpd


ubuntu启用了PAM,所在用到vsftp时需要用到 /etc/pam.d/vsftpd 这个文件(默认源码安装的不会有这个文件),因此除了匿名用户外本地用户无法登录。所以只要删除了就可以了。

然后附上我的配置文件内容:


 

listen=YES

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022

dirmessage_enable=YES

use_localtime=YES

xferlog_enable=YES

xferlog_file=/kvm/ftp/vsftpd.log

xferlog_std_format=YES

ftpd_banner=Welcome to OPENBSD FTP server

idle_session_timeout=300

connect_from_port_20=YES

chroot_local_user=YES

chroot_list_enable=NO

allow_writeable_chroot=YES


然后把登录的用户添加进/etc/vsftpd.chroot_list就可以使用本地用户和密码登录自己的$HOME了。

据说还要把用户的/bin/false改成/sbin/nologin没验证,因为我在创建用户的时候就指定的是/sbin/nologin