yum install vsftpd db4-utils
因为要使用虚拟用户登录.
修改如下文件 a:/etc/pam.d/vsftpd ;添加两行
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser
系统64位 很多网上资料 写的是/lib/security/pam_userdb.so 这里要改一下
其它注释掉。
3. 配置文件 vsftpd.conf
listen=YES
local_enable=YES #设定本地用户可以访问。注:如使用虚拟宿主用户,在该项目设定为NO的情况下所有虚拟用户将无法访问
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
userlist_enable=YES
tcp_wrappers=YES
anonymous_enable=NO
guest_enable=YES
guest_username=ftpadmin #虚拟目录对应的系统账号
pam_service_name=vsftpd
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf #配置虚拟用户的单独配置路径,如家目录等
anon_umask=022
4. 添加用户ftpadmin
useradd ftpadmin -d /data/ftp -s /sbin/nologin
5. 添加用户名密码 到文件vftpuser.txt
格式为:
用户名
密码
6. db_load -T -t hash -f /etc/vsftpd/vftpuser.txt /etc/vsftpd/vftpuser.db 密码生成到数据文件
7./etc/rc.d/init.d/vsftpd restart 重启即可
/etc/vsftpd/vsftpd_user_conf/用户名
write_enable=YES
anon_world_readable_only=NOanon_upload_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=YESlocal_root=/var/ftp/database配置文件后不能有空格 否则会报错,比如上面加入注释的地方。
要允许local_enable=YES 否则530登录报错 还有超时错误还不清楚原因
centos 7 报错无法登陆可以命令行下验证:(500 OOPS: vsftpd: refusing to run with writable root inside chroot () ) 需要在vsftpd.conf 中添加 allow_writeable_chroot=YES
参考:
今天在 6 上面配置时 发现几个问题
6 安装的是 2.2.2 版本 7的是3.0.2版本
allow_writeable_chroot=YES 在6里不支持
2:把端口号改为 918 报错 无法列举目录。 改回21就正常 ???