vsftpd pam_mysql crypt 1_安装vsftpd+pam+mysql实现对虚拟用户身份认证详细步骤

安装vsftpd+pam+mysql实现对虚拟用户身份认证详细步骤

发布时间:2020-05-13 11:42:57

来源:亿速云

阅读:188

作者:三月

栏目:数据库

下文主要给大家带来安装vsftpd+pam+mysql实现对虚拟用户身份认证详细步骤,希望这些内容能够带给大家实际用处,这也是我编辑安装vsftpd+pam+mysql实现对虚拟用户身份认证详细步骤这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。

一、安装所需要程序

1、事先安装好开发环境和mysql数据库;

# yum -y install mysql-server mysql-devel

# yum -y groupinstall "Development Tools" "DevelopmentLibraries"

2.安装pam_mysql-0.7RC1

# tar zxvf  pam_mysql-0.7RC1.tar.gz

# cd  pam_mysql-0.7RC1

# ./configure --with-mysql=/usr --with-openssl

# make

# make install

3.安装vsftpd

# yum -y install vsftpd

#cp /usr/lib/security/pam_mysql.so  /lib/security/

#这个共享库在后面的pam文件中要用到,请务必要确保它的路径的正确性

二、创建虚拟用户账号

1.准备数据库及相关表

首先请确保mysql服务已经正常启动。而后,按需要建立存储虚拟用户的数据库即可,这里将其创建为vsftpd数据库。

mysql> create database vsftpd;

mysql> grant select on vsftpd.* to vsftpd@localhostidentified by 'vsftpd’;

mysql> grant select on vsftpd.* to vsftpd@127.0.0.1 identified by 'vsftpd’;

mysql> flush privileges;

#这里用户vsftpd用处在于将来pam到mysql数据库中检索时mysql这个进程的属主以vsftpd来运行

216a411725612d81b195eddf5aba09d3.png

mysql> use vsftpd;

mysql> create table users (

-> id int AUTO_INCREMENT NOT NULL,

-> name char(20) binary NOT NULL,

-> password char(48) binary NOT NULL,

-> primary key(id)

-> );

2、添加测试的虚拟用户

mysql> insert into users(name,password) values('tom',passwd(‘xsl’);

mysql> insert into users(name,password) values('boy', passwd(‘xsl’);

三、配置vsftpd

1.建立pam认证所需文件

#vi /etc/pam.d/vsftpd.mysql

添加如下两行

auth required /lib/security/pam_mysql.so user=vsftpd passwd=vsftpd host=localhostdb=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

account required /lib/security/pam_mysql.so user=vsftpdpasswd=vsftpd host=localhost db=vsftpd table=users usercolumn=namepasswdcolumn=password crypt=2

2.修改vsftpd的配置文件,使其适应mysql认证

建立虚拟用户映射的系统用户及对应的目录

#useradd -s /sbin/nologin vuser

#chmod go+rx /home/vuser

请确保/etc/vsftpd.conf中已经启用了以下选项

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

并确保pam_service_name选项的值如下所示

pam_service_name=vsftpd.mysql

#这个文件名称一定要与上面所建立的pam文件名称相同

四、启动vsftpd服务

# service vsftpd start

# chkconfig vsftpd on

使用虚拟用户登录,验正配置结果,以下为本机的命令方式测试,你也可以在其它Win Box上用IE或者FTP客户端工具登录验正

# ftp localhost

如果使用命令方式登录时,如果出现

[root@localhost ~]# ftp localhost

Connected to localhost

220 (vsFTPd 2.0.5)

530 Please login with USER and PASS.

530 Please login with USER and PASS.

KERBEROS_V4 rejected as an authentication type

Name (192.168.0.104:root): tom

331 Please specify the password.

Password:

530 Login incorrect.

Login failed.

ftp>

这样你的字样的话,请查看日志信息,使用tail  /var/log/secure命令

Oct 19 15:41:42 localhost vsftpd: pam_mysql - MySQL error(Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'(2))

Oct 19 15:43:02 localhost vsftpd: pam_mysql - MySQL error (Can't connect tolocal MySQL server through socket '/var/lib/mysql/mysql.sock' (2))

如果出现这样的字样,说明pam-mysql模块无法通过mysql的套接字域mysql建立连接。

解决办法:

将认证模块中的host=localhost,改为host=127.0.0.1

[root@bogon pub]# ftp 127.0.0.1

Connected to 127.0.0.1 (127.0.0.1).

220 (vsFTPd 2.2.2)

Name (127.0.0.1:root): tom

331 Please specify the password.

Password:

500 OOPS: cannot change directory:/home/vuser

解决办法:将selinux 设置为关闭,重启云服务器即可。

五、配置虚拟用户具有不同的访问权限

vsftpd可以在配置文件目录中为每个用户提供单独的配置文件以定义其ftp服务访问权限,每个虚拟用户的配置文件名同虚拟用户的用户名。配置文件目录可以是任意未使用目录,只需要在vsftpd.conf指定其路径及名称即可。

1、配置vsftpd为虚拟用户使用配置文件目录

# vim vsftpd.conf

添加如下选项

user_config_dir=/etc/vsftpd/vusers

2、创建所需要目录,并为虚拟用户提供配置文件

# mkdir /etc/vsftpd/vusers/

# cd /etc/vsftpd/vusers/

# touch tom boy

3、配置虚拟用户的访问权限

虚拟用户对vsftpd服务的访问权限是通过匿名用户的相关指令进行的。比如,如果需要让tom用户具有上传文件的权限,可以修改/etc/vsftpd/vusers/tom文件,在里面添加如下选项即可。

#上传权限

anon_upload_enable=YES

#创建文件权限

anon_mkdir_write_enable=YES

#删除文件权限

anon_other_write_enable=YES

这样就可以指定虚拟用户的访问权限了

对于以上关于安装vsftpd+pam+mysql实现对虚拟用户身份认证详细步骤,大家是不是觉得非常有帮助。如果需要了解更多内容,请继续关注我们的行业资讯,相信你会喜欢上这些内容的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/421570.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ios 在UIView上画图,线条

1.画线条(实线,虚线) - (void)drawRect:(CGRect)rect { CGContextRef context UIGraphicsGetCurrentContext(); [self drawXLine:context rect:rect]; [self drawLegend:context rect:rect]; } -(CGContextRef)drawXLine:(CGContextRef)cont…

校园卡系统mysql与java结合_基于Java+JSP+Mysq+Servletl的校园卡一卡通管理系统

需求分析使用JavaJSPMysqServlet技术实现一个校园卡一卡通管理系统, 分为学生与管理员两个角色, 能够进行登录, 充值, 挂失, 历史消费查询等功能本站提供其他类型的 一卡通管理系统源代码 点击查看运行环境java, jdk1.8,tomcat8.5,mysql5.6, EclispseEE/Idea项目技术java, JSP,…

linux/unix下setuid/seteuid/setreuid/setresuid

其中setresuid()具有最清晰的语法: setresuid()被执行的条件有: ①当前进程的euid是root ②三个参数,每一个等于原来某个id中的一个 如果满足以上条件的任意一个,setresuid()都可以正常调用,并执行,将 进程…

shell监控mysql发邮件_用shell脚本监控linux系统 自动发送邮件

此脚本可以做一个定时的检测,超出设定的值,即往邮箱发送警告脚本用到bc,sendmail,163邮箱,yum install bc#!/bin/bash#System Monitoring Scriptwhile [ 1 ]do#本机需开启postfix或sendmail服务。#报警邮件地址设置MAI…

【C语言】01-C语言概述

说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略 回到顶部为什么iOS开发要先学C语言? i…

删除 索引 外键 mysql_MySQL外键及级联删除 表的存储引擎与创建索引 删除数据库和表...

Messages表:mysql>create table Messages(->message_id int auto_increment primary key,->user_name varchar(50) not null,->author_id int not null,->body text,->forum_id int not null);Forums表:mysql>create table Forums(…

字符串长度(PHP学习)

1.计算字符串长度有哪些方法&#xff1f; 答&#xff1a;strlen() 和 mb_strlen() 2.两者有什么区别 答&#xff1a; 如下代码 <?php $str hello中国; ?>strlen($str)计算的是字节的长度&#xff0c;在utf8下一个汉字代表3个字符&#xff0c;算出来是11 在GB2312和…

eclipse在ubuntu13.04下崩溃crash

错误信息&#xff1a; # # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc0x00007fb29dce2009, pid19297, tid140405947455232 # # JRE version: 7.0_10-b18 # Java VM: Java HotSpot(TM) 64-Bit Server VM (23.6-b04 mixed mode…

Java IO 体系结构

参考文章地址: http://blog.csdn.net/oracle_microsoft/article/details/2634231 Java IO体系结构看似庞大复杂,其实有规律可循,要弄清楚其结构,需要明白两点: 1. 其对称性质:InputStream 与 OutputStream, Reader 与 Writer,他们分别是一套字节输入-输出,字符输入-输出体系 2.…

java wap_JAVA和WAP移动学习技术

JAVA和WAP移动学习技术JAVA/WAP移动学习技术摘 要 移动学习是今后课堂学习的必要补充&#xff0c;WAP技术是基于连接浏览的移动学习关键技术。本文以移动电话学生成绩查询系统为例&#xff0c;利用UML模型表征实现的过程&#xff0c;分析其运用的WML 、SERVLET与连接池等技术。…

java string 日期格式_java String.Format() 日期格式用法

JDK1.5中&#xff0c;String类新增了一个很有用的静态方法String.format():现有一个时间20090903要转化成指定时间的java.util.Date格式private Date getStartGregorianTime(String date) {Date d_date DateUtil.parseDate(date);int year new Integer(String.format("%…

java HHmm_java date HHmmss hhmmss

系统交互时&#xff0c;用到时间流水号的设计&#xff0c;出现时间流水号相同的情况&#xff0c;故对时间格式化各种情况做了研究SimpleDateFormat(format)format&#xff1a;年月日 yyyyMMdd时分秒 HHmmss 24小时制时分秒 hhmmss 12小时制年月日时分秒 yyyyMMddHHmmss …

MySql命令——命令行客户机的分隔符

delimiter //create procedure productpricint() begin select avg(price) as priceaveragefrom product; end //delimiter; 转载于:https://www.cnblogs.com/Luoma_HaoWei/p/3270889.html

NuGet学习笔记(1)——初识NuGet及快速安装使用

关于NuGet园子里已经有不少介绍及使用经验&#xff0c;本文仅作为自己研究学习NuGet一个记录。 初次认识NuGet是在去年把项目升级为MVC3的时候&#xff0c;当时看到工具菜单多一项Library Package Manager&#xff0c;右键项目文件多了一项Manage Nuget Packages...&#xff0c…

java 打印二叉树_java – 如何打印二叉树图?

我创建了简单的二叉树打印机。你可以根据需要使用和修改它&#xff0c;但它还没有优化。我认为很多东西都可以在这里改进;import java.util.ArrayList;import java.util.Collections;import java.util.List;public class BTreePrinterTest {private static Node test1() {Node …

ZOJ 2562 More Divisors

又是个水题&#xff0c;刚刚开始没有用搜索&#xff0c;因为对于反素数有&#xff1a; n2^t1*3^t2^5^t3*7^t4..... 这里有 t1>t2>t3>t4。 而且相同的因数的情况下&#xff0c;素数越不同越好。 哪知道这个方法错了&#xff01; 。 看来还得中规中矩得用dfs。 我觉得还…

springMVC使用注解方式进行页面跳转

<!--控制层-->package cn.org.spartacus.spring; import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;ControllerRequestMapping("…

java for 和foreach_关于java中for和foreach循环

for循环中的循环条件中的变量只求一次值&#xff01;具体看最后的图片foreach语句是java5新增&#xff0c;在遍历数组、集合的时候&#xff0c;foreach拥有不错的性能。foreach是for语句的简化&#xff0c;但是foreach并不能替代for循环。可以这么说&#xff0c;任何foreach都能…