vsftpd基于mysql_vsftpd的基于pam_mysql的虚拟用户配置示例

~]# yum install mariadb-server

~]# yum install vsftpd

因为中CentOS 7平台上/lib64/security/中没有pam_mysql模块驱动,需要编译安装pam_mysql这个模块。

25c9140460d3afd4e21cef65df086a02.png

准备编译环境

安装Development Tools 和 service platform Development这两个包组,另外需要安装依赖到的开发包pam-devel,openssl-devel,mariadb-devel。

~]# yum -y  groupinstall  "Development Tools" "Server Platform Development"

~]# yum -y install pam-devel openssl-devel mariadb-devel

开始编译

29544b132e91a36848bda89a30124345.png

此过程没有问题,则执行编译安装

pam_mysql-0.7RC1]# make -j 2 && make install

安装后,可以查看pam的mods目录是否有这个模块了

fa526f52df6cb1c622bdf8246875a80e.png

配置

添加一个本地用户vuser 作为被虚拟用户映射的用户。别设置其家目录(FTP共享资源的路径是访问用户的家目录)

]# useradd -s /sbin/nologin -d /share/ftp vuser

修改其属主为vuser,并确认其对所有用户可读可执行。

]# chown vuser /share/ftp

编辑配置文件

49f8d5aca2e51249825aed625301686f.png

在/etc/pam.d/下创建这个配置虚拟用户认证方式的文件vuser_conf,写入认证方式。

76b0f9c02b2b678052b8c0dcf2b360d9.png

然后登陆mysql创建要用的数据库和表,加入虚拟用户信息。

bb29774a2c3672fa280c850a6a7e4325.png

授权mysql用户

e9a5704baee26c72920d2305cf692412.png

验证权限是否设置有效。

7f9557d23541e613d3611fdd6569a566.png

修改共享资源目录的权限,并创建子目录。

be1b0026e757c989dbd7773a96105616.png

第二步:启动服务

73c936db5c53fa00037d74a493954d05.png

放一些资源放到对应目录下,并确认vuser对其有读权限。

f35036376b424d9391539dde236dc791.png

第三步:测试

779a416e69c51ccb87d066295afad19e.png

登陆测试

246f66a953f6ba69fe07d49928832b76.png

OK

下载测试

6dd4828c0ddfeac9d583241f1d4e2956.png

OK

上传测试

81c277df043297651cb63ce6265f6c6c.png

pub上传失败,因为没有给它写权限,正常

upload上传也是失败,但是已经给了写权限了。

这是因为配置文件中没有设置允许上传。

编辑配置文件

]# vim /etc/vsftpd/vsftpd.conf

826805db7371f2369e7a917d4b210810.png

]# systemctl restart vsftpd.service

再测试上传功能

1038a013b54602397bcdcb9b1d68e298.pngOK,upload目录已经可以上传了。

但是可以看到上传后的文件权限已经变成600,而且属主和属组都是root,这样可能就无法满足我们的需求。而且现在登陆上FTP的用户,可以随意浏览我们文件系统的所有文件,并不局限在我们用来共享资源的这个路径下,这样是很不安全的。

为了满足这些需要,还是需要去编辑vsftpd的主配置文件中的各项参数。这里就不细说了。配置文件中各参数的定义可以参考下图。

512fc8e84b87aed0128b690647a591f4.png

现在还有一个问题,就是所有登陆的用户,都映射为vuser这个本地用户,那么他们的权限都是一样,这样肯定无法满足我们的需求。

vsftpd可以支持每个虚拟用户单配置文件,如果需要定义每个虚拟用户的权限不同,通过这个设置来满足。

配置方式

在vsftpd的主配置文件中添加一项参数,用来定义虚拟用户的个人配置文件放置目录路径。

]# vim /etc/vsftpd/vsftpd.conf

d58b77f59736e0d4712138396b53d0df.png然后创建此目录,并在这个目录下创建虚拟用户同名的个人配置文件。

bcbc2f56b652189876acd9ae96927f68.png

如果需要让puro不能上传,让tom可以上传。

首先注释掉主配置文件中的这一项

]# vim /etc/vsftpd/vsftpd.conf

1e5a742572e6c84b733f7e3390ec748a.png

]# vim /etc/vsftpd/vuser.conf.d/puro

76526203e149702442bafa89d6beab44.png

]# vim /etc/vsftpd/vuser.conf.d/tom

42ffe6a8fcd0744791fcfd4e5eb087e4.png

]# systemctl restart vsftpd.service

然后再次测试

889b81dd737e793fbdc731d919289c14.png

puro不能上传

0dbd6ca075bb032f840d8d23d9b46284.pngtom可以上传

配置OK。

vsftpd的基于pam_mysql的虚拟用户配置示例

标签:vsftpd

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:http://puro2016.blog.51cto.com/11222749/1767123

TAG标签:vsftpd

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值