注意:虚拟用户目录和本地用户访问目录不冲突。
1 [root@imxhy ~]# vi /etc/vsftpd/vuser.txt
2 #新建可用于登录FTP的虚拟用户文件,文件名可自定义,生成db数据库之后可删除此文件
3 ftptest01 #用户名
4 abcdefg #密码
5 ftptest02 #用户2
6 abcdefg #密码
7 ftptest03 #用户3
8 abcdefg #密码
1 yum -y install db4-utils #安装后才有db_load命令
1 db_load -T -t hash -f /etc/vsftpd/ vuser.txt /etc/vsftpd/vuser.db
2 #将明文用户文件转成数据库文件,数据库文件名可自定义
3 [root@imxhy ~]# ls -l /etc/vsftpd/
4 total 40K
5 -rw-r--r--. 1 root root 9 Aug 28 20:30 chroot_list
6 -rw-------. 1 root root 125 Aug 28 20:55 ftpusers
7 -rw-------. 1 root root 369 Aug 28 20:56 user_list
8 -rw-------. 1 root root 5.0K Aug 28 21:44 vsftpd.conf
9 -rwxr--r--. 1 root root 338 Mar 31 23:12 vsftpd_conf_migrate.sh
10 -rw-r--r--. 1 root root 12K Aug 28 22:38 vuser.db #转换后的数据库文件
11 -rw-r--r--. 1 root root 54 Aug 28 22:27 vuser.txt
注意:vsfp的pam认证默认是针对本地用户的。
说明:
1 [root@imxhy ~]# vi /etc/pam.d/vsftpd.vu #新建针对虚拟用户的PAM认证文件
2 auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser
3 #32位系统--之前创建的db数据库
4 account required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser
5 #32位系统--之前创建的db数据库
6 auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
7 #64位系统--之前创建的db数据库
8 account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
9 #64位系统--之前创建的db数据库
1 [root@imxhy ~]# useradd -d /home/vftproot -s /sbin/nologin vuser
2 #建立所有虚拟用户的主目录,并映射至不可登录的vuser用户,用户名可自定义。
3 [root@imxhy ~]# chmod 555 /home/vftproot/ #修改相应的权限
1 [root@imxhy ~]# vi /etc/vsftpd/vsftpd.conf
2 anonymous=NO #关闭匿名用户
3 guest_enable=YES #打开虚拟用户登陆功能
4 guest_username=vuser #FTP虚拟用户对应的本地用户,即上一步创建的用户
5 pam_service_name=vsftpd.vu #PAM认证文件
6 anon_upload_enable=YES #给虚拟用户设定上传权限
7 anon_mkdir_write_enable=YES #给虚拟用户设定写入权限
8 anon_other_write_enable=YES #给其他用户设定写入权限
注意:在新版vsftp中,设定的映射本地用户vuser家目录权限不能具备w权限,否则无法登陆。
1 [root@imxhy ~]# mkdir /home/vftproot/pub
2 #在虚拟用户的主目录之下再新建一层
3 用户上传的目录
4 [root@imxhy ~]# chown vuser:vuser /home/vftproot/pub
5 #将新建的目录所属人和所属组修改为虚拟用户
1 [root@imxhy home]# systemctl restart vsftpd
2 E:\Temp\ftp>ftp 192.168.10.10
3 连接到 192.168.10.10。
4 220 (vsFTPd 3.0.2)
5 用户(192.168.10.10:(none)): ftptest01
6 331 Please specify the password.
7 密码:
8 230 Login successful.
9 ftp> get down.txt
10 200 PORT command successful. Consider using PASV.
11 150 Opening BINARY mode data connection for down.txt (0 bytes).
12 226 Transfer complete.
13 ftp> cd pub
14 250 Directory successfully changed.
15 ftp> put upload.txt
16 200 PORT command successful. Consider using PASV.
17 150 Ok to send data.
18 226 Transfer complete.