1、首先安装vsftpd
[root@daixuan ftp]# yum install -y vsftpd
2、启动vsftp,发现报错,原因是21端口被pureftp占用了,需要杀死pureftp所有进程
[root@daixuan ftp]# /etc/init.d/vsftpd start
为 vsftpd 启动 vsftpd: [失败]
[root@daixuan ftp]# killall pure-ftpd
[root@daixuan ftp]# /etc/init.d/vsftpd start
为 vsftpd 启动 vsftpd: [确定]
[root@daixuan ftp]# netstat -lnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 32680/vsftpd
3、添加虚拟用户相关的系统账号
[root@daixuan ~]# useradd virftp -s /sbin/nologin
4、建立虚拟账户相关的文件
[root@daixuan ~]# vim /etc/vsftpd/vsftpd_login
test1
123456
test2
abcdef
修改虚拟账户文件的权限
[root@daixuan ~]# chmod 600 /etc/vsftpd/vsftpd_login
生成对应的库文件
[root@daixuan ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
5、建立虚拟用户相关的目录和配置文件
[root@daixuan ~]# mkdir /etc/vsftpd/vsftpd_user_conf
[root@daixuan ~]# cd !$
cd /etc/vsftpd/vsftpd_user_conf
[root@daixuan vsftpd_user_conf]# vim test1
local_root=/home/virftp/test1
anonymous_enable=NO
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
idle_session_timeout=600
data_connection_timeout=120
max_clients=10
max_per_ip=5
local_max_rate=50000
[root@daixuan vsftpd_user_conf]# mkdir /home/virftp/test1
[root@daixuan vsftpd_user_conf]# chown -R virftp:virftp !$
chown -R virftp:virftp /home/virftp/test1
[root@daixuan vsftpd_user_conf]# vim /etc/pam.d/vsftpd
#%PAM-1.0
auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
[root@daixuan vsftpd_user_conf]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES改为anonymous_enable=NO
#anon_upload_enable=YES 改为 anon_upload_enable=NO
#anon_mkdir_write_enable=YES 改为 anon_mkdir_write_enable=NO
chroot_local_user=YES
guest_enable=YES
guest_username=virftp
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf
问题:
lftp [email protected]:~> ls
ls: 登录失败: 530 Login incorrect.
原因是密码错误或者没有mkdb
解决方法:输入正确的test1的密码123456,ls不会报错
问题:
[root@daixuan vsftpd_user_conf]# lftp [email protected]
口令:
lftp [email protected]:~> ls
ls: 登录失败: 530 Login incorrect.
最终在网上找到一个解决方法,注释一行,可登陆。
vi /etc/pam.d/vsftpd
注释改行,#auth required pam_shells.so
参考:http://serverfault.com/questions/180778/vsftpd-530-login-incorrect