一、配置环境:
centos6.8×86+vsftp2.2.2
vsftp的安装过程可以参考“(腾讯云)centos下配置安装nginx+php+ftp+mysql”第六步:
关闭vsftp:
1 | service vsftpd stop |
二、架设基于虚拟用户的vsftp:
ftp中的虚拟用户不是真实的linux用户,而是映射帐户来达到设置权限的目的,一些集成工具就会使用这种功能。
修改/etc/vsftpd/vsftpd.conf:
1 | vi /etc/vsftpd/vsftpd.conf |
更改以下行内容:
1 2 3 4 5 6 7 8 9 10 11 | anonymous_enable=NO #不允许匿名访问 local_enable=YES #设定本地用户可以访问,如果使用虚拟用户选择NO以后,所有虚拟用户无法访问 chroot_list_enable=YES #用户不能离开主目录 xferlog_file=/var/log/xferlog #设定vsftpd的服务日志保存路径。 ascii_upload_enable=YES ascii_download_enable=YES pam_service_name=vsftpd #PAM文件认证名 guest_enable=YES guest_username=ftp #使用centos内置的账户ftp user_config_dir=/var/ftp/user_conf #设定虚拟用户的FTP文件存放路径,文件名和用户名一致 |
二、创建相关文件:
1.创建chroot list,添加用户ftp
1 2 | touch /etc/vsftpd/chroot_list echo ftp >> /etc/vsftpd/chroot_list |
2.创建日志保存文件:
1 | touch var/log/xferlog |
3.创建用户密码文本/var/ftp/passwd.txt :
1 | vi /var/ftp/passwd.txt |
写入你要创建的用户名和密码,奇行是用户名,偶行是密码:
1 2 3 4 | user1 12345678 user2 12345678 |
4.创建虚拟用户的FTP文件存放路径文件夹:
1 | mkdir /var/ftp/user_conf |
三、进行认证:
1.安装Berkeley DB工具:
1 | yum install db4 db4-utils |
链接密码文件:
1 | db_load -T -t hash -f /var/ftp/passwd.txt /var/ftp/passwd.db |
编辑认证文件/etc/pam.d/vsftpd:
1 | vi /etc/pam.d/vsftpd |
注释原来内容,并加上下面两行:
1 2 | auth required pam_userdb.so db=/var/ftp/passwd account required pam_userdb.so db=/var/ftp/passwd |
2.创建虚拟用户FTP服务文件
1 | vi /var/ftp/user_conf/user1 |
1 | local_root=/opt/var/user1 |
#虚拟用户的根目录(根据实际修改)
write_enable=YES #可写
anon_umask=022 #掩码
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
3.重启vsftp就可以使用了
1 | service vsftpd restart |
四、使用ftp工具链接ftp服务器:
如图所示,我们的链接已经成功了。
2 pings
[…] « VSFTP实现多用户访问,基于虚拟用户架设VSFTP […]
[…] VSFTP实现多用户访问,基于虚拟用户架设VSFTP » […]