vsftp 虚拟用户+MySQL认证独立家目录
centos7 系统
安装包
yum -y install mariadb vsftpd openssl-devel mysql-devel pam-devel
yum -y groupinstall "Development Tools" "Server PlatformDevelopment"
启动mariadb 和设置root密码(略)
创建vsftp数据库和用户
CREATE DATABASE vsftpd;
grant select on vsftpd.* to vsftpd@'%' identified by '123456';
use vsftpd;
创建一个auth表
CREATE TABLE auth (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,name VARCHAR(30) NOT NULL , password CHAR(48) NOT NULL);
插入2个测试的用户名和密码
INSERT INTO auth (name,password) VALUES ("test1","123456"),("test2","123456");
编译安装pam_mysql
下载源码包安装,地址http://pam-mysql.sourceforge.net/
tar -xf pam_mysql-0.7RC1.tar.gz
cd pam_mysql-0.7RC1
./configure –with-openssl -with-pam-mods-dir=/usr/lib64/security
make && make install
编辑pam验证,将下面的信息改成自己的
cp /usr/lib64/securi/pam_mysql.so /usr/lib64/security/pam_mysql.so
[root@controller03 ]# cat /etc/pam.d/vsftpd.mariadb
auth required /usr/lib64/security/pam_mysql.so user=vsftp passwd=123456 host=172.16.20.3 db=vsftpd table=auth usercolumn=name passwdcolumn=password crypt=0
account required /usr/lib64/security/pam_mysql.so user=vsftp passwd=123456 host=172.16.20.3 db=vsftpd table=auth usercolumn=name passwdcolumn=password crypt=0
指定pam_mysql.so的路径,user、passwd为授权的用户,host为连接的数据库主机,usercolumn/passwdcolumn为定义的字段名,crypt=N,(N=0:密码明文发送;N=1:使用crypt函数加密;N=2:使用mysql的password()函数;N=3:使用md5加密;N=4:使用sha1加密)。
配置vsftpd文件,提示最好在文本文件中复制在粘贴,否则可能vsftpd无法启动,就是编码问题
[root@controller03 test2]# cat /etc/vsftpd/vsftpd.conf
anonymous_enable=NO #禁止匿名登录
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
chroot_local_user=YES
listen=YES
pam_service_name=vsftpd.mariadb #改成上面定义的pam文件
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES #启用虚拟用户
guest_username=vftpuser #真实用户
virtual_use_local_privs=YES #NO时,虚拟用户和匿名用户有相同的权限,默认是NO,YES就是具有guest_username的用户权限
user_config_dir=/etc/vsftpd/vuser_conf
定义用户文件,每一个用户一个文件
cat /etc/vsftpd/vuser_conf/test2
local_root=/home/test2 #定义自己家目录
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
创建系统用户vftpuser
groupadd -g 1501 vftpuser && useradd -g vftpuser -u 1501 -s /sbin/nologin -d /home/vftpuser vftpuser
创建用户目录
mkdir /home/test2
mkdir /home/test3
chown -R root:root *
[root@controller03 home]# ll
total 0
drwxr-xr-x 3 root root 18 Dec 4 14:35 test2
drwxr-xr-x 2 root root 6 Dec 4 14:31 test3
drwxr-xr-x 3 root root 88 Dec 4 14:21 vftpuser
启动vsftp服务systemctl restart vsftpd.service
cd到test2目录,现在还是无法针对这个test2的目录进行操作,在建立一个文件夹soft,赋予chown vftpuser:vftpuser既可,然后登陆ftp就可以在这个目录下进行操作了
遇到的问题:
登陆ftp用户名和密码没有错误就是登陆不上去。
[root@controller01 home]# ll
total 0
drwxr-xr-x 2 vftpuser vftpuser 6 Dec 5 16:02 test1
drwx------ 2 root root 76 Dec 5 10:08 vftpuser
原因就上面的家目录属组有问题不是root而是vftpuser用户,这个用户是system用户,用来映射虚拟用户的
问题1
tail -f /var/log/secure
Dec 5 16:39:25 controller01 vsftpd[9484]: pam_mysql - SELECT returned no result.
Dec 5 16:39:25 controller01 vsftpd[9484]: pam_mysql - SELECT returned no result.
登陆ftp页面后就会提示这个,用户名密码没有验证成功。
vsftp 虚拟用户+MySQL认证独立家目录的更多相关文章
- vsftp虚拟用户配置
找了很久,终于找到像样一点的文章,很详细,参数方面懂英文基本能看懂,一个教程是否有用,关键在于细节.错了一点点就不能配下去了. ------------------------------------ ...
- vsftp 虚拟用户测试
1.创建用于进行FTP验证的帐号密码数据库文件,单数行为账户名,偶数行为密码.[root@rhel1 vsftpd]# vi /etc/vsftpd/vuser.listuser1123456user ...
- vsftp 虚拟用户高级设置(转载)
发布:xiaokk 来源:net [大 中 小] vsftp 虚拟用户高级设置 本文转自:http://www.jbxue.com/article/1724.html 1.安装所需软件包 ...
- vsftp虚拟用户方式访问
需求:外部人员需要对公司服务器上某个文件夹内容进行读写操作 文件目录信息:/opt/abc drwxr-xr-x 9 www www 4096 12月 4 13:02 abc #注 ...
- vsftp虚拟用户登录配置详解
一.安装:1.安装Vsftpd服务:# yum install vsftpd 2.安装DB4部件包:这里要特别安装一个db4的包,用来支持文件数据库.# yum install db4-utils 二 ...
- CentOS 7搭建vsftp(虚拟用户方式登录)
说明: vsftpd的版本:vsftpd-3.0.2-22.el7.x86_64 ftp 根目录 : /data/ftp ftp 配置文件目录:/etc/vsftpd ftp 虚拟用户权限配置文件目录 ...
- FTP(虚拟用户,并且每个虚拟用户可以具有独立的属性配置)
VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 首先安装 主配置文件:/etc/vsftpd/vsftpd. ...
- vsftp 虚拟用户
首先安装vsftp db-4wiki mkdir -p /opt/ftp 创建用户 sudo useradd virtual -d /opt/ftp -s /bin/false sudo chown ...
- 《自动共享LDAP用户并且访问其家目录》RHEL6
实验的目的: 实现ldap服务器上的ldap用户被客户端访问,自动挂载到客户端,并且可以访问ldap用户的家目录. 服务端: 1.只需要配置文件: Iptables –F 关闭selinu ...
随机推荐
- 创建分区swap分区
1.将文件系统卸载 #umount /sdc5 2.创建swap分区 #mkswap /dev/sdc5 3.激活swap分区 #swapon -a /dev/sdc5 4.查看swap分区情况 #s ...
- Postman和Selenium IDE开局自带红蓝BUFF属性,就问你要还是不要
话不多说,下面给大家介绍两款工具,selenium IDE和Postman. 为什么说是自带红蓝Buff,因为想做UI自动化和接口自动化的同学,很多时候,都难在了开头. 比如你要学习语言,你要学习框架 ...
- [转]Linux 线程分离状态
线程的分离与结合 在任何一个时间点上,线程是可结合的(joinable),或者是分离的(detached).一个可结合的线程能够被其他线程收回其资源和杀死:在被其他线程回收之前,它的存储器资源(如栈) ...
- [转]编译防火墙——C++的Pimpl惯用法解析
impl(pointer to implementation, 指向实现的指针)是一种常用的,用来对“类的接口与实现”进行解耦的方法.这个技巧可以避免在头文件中暴露私有细节(见下图1),因此是促进AP ...
- python+selenium初学者常见问题处理
要做web自动化,第一件事情就是搭建自动化测试环境,那就没法避免的要用到selenium了. 那在搭建环境和使用过程中经常会遇到以下几类问题: 1.引入selenium包失败: 出现这种错误,一般分为 ...
- WIN下的CMD下载命令
certutil -urlcache -split -f 远程地址 本地保存的文件跑径与文 件名 # 如里不写本地文 件名与路径名, 会自动跟远程文 件名相同, 并保存到当前目 录下 另一个是: bi ...
- 【Python学习笔记】使用Python进行T检验
使用Python进行T检验 所需要用到的第三方库有scipy. 均可以通过pip直接安装. pip install scipy numpy 引入第三方库 from scipy import stats ...
- 转载-struts中logic标签使用
Struts中Logic逻辑标签的作用及用法 Struts中Logic逻辑标签的作用及用法 2006年10月18日 星期三 21:34 Terry原创,转载请说明作者及出处 Logic标签大部分的功能 ...
- 内核工具 – Sparse 简介【转】
转自:http://www.cnblogs.com/wang_yb/p/3575039.html Sparse是内核代码静态分析工具, 能够帮助我们找出代码中的隐患. 主要内容: Sparse 介绍 ...
- Git的安装和使用(Linux)【转】
转自:http://my.oschina.net/fhd/blog/354685 Git诞生于Linux平台并作为版本控制系统率先服务于Linux内核,因此在Linux上安装Git是非常方便的.可以通 ...