前提:准备好一个yum源,我在后面配置中使用到的软件包下载路径:lftp 172.16.0.1:/pub/Sources/vsftpd
一、准备工作
1.安装开发环境和mysql数据库
- [root@localhost ~]#yum –y groupinstall “Development Tools”“Development Libraries”
- [root@localhost ~]#yum –y install mysql-server mysql-devel
2.安装pam_mysql-0.7RC1软件包
- [root@localhost ~]#lftp 172.16.0.1:/pub/Sources/vsftpd
- lftp 172.16.0.1:/pub/Sources/vsftpd>get pam_mysql-0.7RC1
- lftp 172.16.0.1:/pub/Sources/vsftpd>bye
- [root@localhost ~]#tar xf pam_mysql-0.7RC1
- [root@localhost ~]#cd pam_mysql-0.7RC1
- [root@localhost pam_mysql-0.7RC1]#./configure –with-mysql=/usr –with-openssl
- ####指定mysql数据库安装的路径,同时支持openssl加密功能
- [root@localhost pam_mysql-0.7RC1]#make
- [root@localhost pam_mysql-0.7RC1]#make install
3.安装vsftpd服务
- [root@localhost ~]#yum –y install vsftpd
4.启动mysqld服务
- [root@localhost ~]#service mysqld start
- [root@localhost ~]#chkconfig –add mysqld
- [root@localhost ~]#chkconfig mysqld on
二、创建虚拟用户及账号
1.创建数据库及表
####在这里我们创建一个数据库vsftpd,在该数据库中创建存放虚拟用户名和用户密码的用户表users
2.为用户vsftpd授权
3.在users表中插入虚拟用户及密码
三、配置vsftpd
1.创建pam认证的所需文件
- ###pam认证文件一般在/etc/pam.d下,为了让文件名看起来一目了然,在pam.d下创建vsftpd.mysql文件
- [root@localhost ~]#vim /etc/pam.d/vsftpd.mysql
- 添加如下内容:
- auth required /lib/security/pam_mysql.so user=vsftpd passwd=www.magedu.com host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=0
- account required /lib/security/pam_mysql.so user=vsftpd passwd=www.magedu.com host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=0
- ####创建的用户必须经过pam这个模块认证,否则就不会进行下面的操作
- 保存退出
2.创建虚拟用户映射的系统用户及对应的目录
- [root@localhost ~]#useradd –s /sbin/nologin –d /var/ftproot vuser
- [root@localhost ~]#chmod go+rx /var/ftproot
- ###使系统用户vuser的家目录任何人都有执行权限
3.修改vsftpd的配置文件,使其支持mysql认证
- 在vsftpd配置文件中,一定要启用的选项:
- anonymous_enable=YES
- local_enable=YES
- write_enable=YES
- anon_upload_enable=NO
- anon_mkdir_write_enable=NO
- chroot_local_user=YES
- 需要添加的选项:
- guest_enable=YES
- guest_username=vuser ###启动来宾用户访问功能,并指定来宾用户为vuser
- pam_service_name=vsftpd.mysql ##指定pam认证的pam文件名
- 保存退出
4.启动vsftpd服务
- [root@localhost ~]#chkconfig –add vsftpd
- [root@localhost ~]#chkconfig vsftpd on
- [root@localhost ~]#service vsftpd start
四、查看vsftpd服务的端口
五、配置虚拟用户的不同访问权限
此时使用虚拟用户登录到ftp服务中,还没有上传、下载、创建、删除等权限;要想使定义的虚拟用户拥有不同的访问权限,需要在配置文件目录下为每个用户提供单独的配置文件以定义其ftp服务访问权限,每一个虚拟用户的配置文件名可以同虚拟用户的用户名。
1.在vsftpd配置文件中为虚拟用户提供配置文件目录
- [root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
- 添加一项:
- user_config_dir=/etc/vsftpd/vusers
- 保存退出
2.创建所需要的目录,并为虚拟用户提供配置文件
- [root@localhost ~]#mkdir /etc/vsftpd/vusers
- [root@localhost ~]#cd /etc/vsftpd/vusers
- [root@localhost vusers]#touch tom jerry
- [root@localhost vusers]#vim jerry ####在下面的演示中我只为jerry用户设置不同的访问权限,tom用户的访问权限设定方法和jerry的是相同的
- 添加选项:
- anon_upload_enable=YES ###开启虚拟用户的上传功能
- anon_mkdir_write_enable=YES ###开启虚拟用户的创建功能
- ####可以根据个人的需要添加相应的功能,每一项选项只对应一种功能实现
六、测试结果
上传文件
创建目录
删除文件
在IE浏览器中测试使用虚拟用户登录ftp服务器
登录成功,并显示创建的目录
转载于:https://blog.51cto.com/luowenjing/1184035