007.FTP虚拟用户访问
一 虚拟用户优点
- 可对每个用户进行单独设定权限。
- 每个用户单独配置文件,单独指定主目录,而不能访问系统的其它资源。
注意:虚拟用户目录和本地用户访问目录不冲突。
二 配置虚拟用户步骤
- 添加虚拟用户口令文件
- 生成虚拟用户口令认证文件
- 编辑vsftp的PAM认证文件
- 建立本地映射用户并设置宿主目录权限
- 修改配置文件
- 重启vsftp服务,并测试
- 调整虚拟用户权限
三 添加虚拟用户口令文件
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 #密码
四 生成虚拟用户口令认证文件
4.1 安装口令认证命令
1 yum -y install db4-utils #安装后才有db_load命令
4.2 将文本转变为认证的数据库
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
五 编辑vsftp的PAM认证文件
注意:vsfp的pam认证默认是针对本地用户的。
5.1 添加新的虚拟PAM配置项
说明:
- 若要本地用户无法登陆,则直接在原pam认证文件注释掉原来针对本地用户的配置项,再添加虚拟认证项即可;
- 不可将local_enable=YES修改为NO,因为虚拟用户登陆也是把模拟用户映射到本地用户,因此此处必须为YES。
- 若要保留本地用户登陆,可新建用户虚拟用户的pam认证文件
- 32位和64位系统添加项有区别,一定要注意。
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.
九 总结
- 默认上传文件的位置是宿主用户家目录,若存在local_root则为此设置项目录。
- 权限使用的你明用户权限进行管理。
- 一定要关闭SElinux和防火墙iptables,也可以进行开放允许操作。
作者:木二
出处:http://www.cnblogs.com/itzgr/
关于作者:云计算、虚拟化,Linux,多多交流!
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接!如有其他问题,可邮件(xhy@itzgr.com)咨询。