ftp服务器虚拟用户访问(for linux平台)
一.配置yum,以便安装软件包
yum全局文件编辑目录: /etc/yum.repos.d/rhel-source.repo
[root@wanghong ~]# vim //etc/yum.repos.d/rhel-source.repo
#[rhel-source]
#name=Red Hat Enterprise Linux $releasever - $basearch - Source
#baseurl=ftp://ftp.redhat.com/pub/redhat/linux/enterprise/$releasever/en/os/SRPMS/
#enabled=0
#gpgcheck=1
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
#[rhel-source-beta]
#name=Red Hat Enterprise Linux $releasever Beta - $basearch - Source
#baseurl=ftp://ftp.redhat.com/pub/redhat/linux/beta/$releasever/en/os/SRPMS/
#enabled=0
#gpgcheck=1
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta,file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[wanghong]
Name=123
Baseurl=file:///mnt/Server
enable=1
gpgcheck=0
备注: #是注释作用,在此对文件没用任何影响,可以去掉
二.安装db4-utils-4.3.29-9.fc6.i386.rpm软件包
[root@wanghong ~]#yum install db4-utils-4.3.29-9.fc6.i386.rpm
或者使用rpm –ivh /mnt/Packages/db4-utils-4.3.29-9.fc6.i386.rpm --force 强制安装
1. 建立虚拟用户的用户名/密码数据库
[root@wanghong ~]#vim /etc/vsftpd/vusers.list
Mike
123
John
456
备注: 奇数行为用户名,偶数行为上一行中用户所对应的密码
使用db_load工具将列表文件转化为DB数据库文件
[root@wanghong ~]#cd /etc/vsftpd
[root@wanghong vsftpd]#db_load -T -t hash -f vusers.list vusers.db
-T选项允许非Berkeley DB的应用程序使用从文本格式转换的DB数据库文件
-t hash 选项指定读取数据文件的基本方法
-f 选项用于指定用户名和密码列表文件
2.建立ftp访问的根目录及虚拟用户对应的系统账号
[root@wanghong ~]#useradd –d /var/ftproot –s /sbin/nologin virtual
建立映射账号virtual
[root@wanghong ~]#chmod 755 /var/ftproot
更改ftp根目录权限
[root@wanghong ~]#ls –lh /boot > /var/ftproot/vutest.file
建立测试文件
3.建立PAM认证文件
PAM配置文件主要用于为程序提供用户认证控制,vsftpd服务使用的默认PAM配置文件为/etc/pam.d/vsftpd
[root@wanghong ~]#vim /etc/pam.d/vsftpd.vu
#%PAM-1.0
auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers
配置时注意将db选项指定为先前建立的虚拟用户数据库文件vusers(省略db扩展名)
4.修改vsftpd.conf配置文件,添加虚拟用户支持
在vsftpd.conf配置文件中添加guest_enable、guest_username配置项,将访向ftp服务的所有虚拟用户对应到同一系统用户账号virtual,并修改pam_service_name配置项,指向上一步建立的PAM配置文件/etc/pam.d/vsftpd.vu
[root@wanghong ~]#vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES 备注:使用虚拟用户需启用本地用户
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd.vu 备注:修改使用的PAM文件位置
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES 备注:启用用户映射功能
guest_username=virtual 备注:将映射用户指定为virtual
5.为不同的虚拟用户建立独立的配置文件
为虚拟用户john添加上传文件、创建目录的权限
[root@wanghong ~]#vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/vusers_dir //添加此行配置项,指定用户配置目录位置
为用户mike、john建立独立的配置目录及文件
[root@wanghong ~]#mkdir /etc/vsftpd/vusers_dir //创建用户目录
[root@wanghong ~]#cd /etc/vsf tpd/vusers_dir
[root@wanghong vusers_dir]#vim john
anon_upload_enable=YES
anon_mkdir_write_enable=YES
[root@wanghong vusers_dir]#touch mike //为mike建立空配置文件(无额外权限设置)
6.测试虚拟用户访问ftp服务
首先需重启vsftpd服务,分别使虚拟用户mike、john在ftp服务器上下载,上传文件,最后使用匿名和本地用户去登录ftp服务器
本文出自 “学海无涯苦作舟!” 博客,谢绝转载!