vsftpd虚拟用户搭建

vsftpd虚拟用户搭建

1.安装vsftpd等一系列的安装包

yum install vsftpd mariadb-server mariadb-devel pam-devel -y

2.安装pam_mysql

下载:pam_mysql-0.7RC1.tar.gz
wget -c ftp://172.16.0.1/pub/Sources/sources/pam/pam_mysql-0.7RC1.tar.gz


./configure --with-pam=/usr --with-mysql=/usr --with-pam-mods-dir=/usr/lib64/security
make && make install

3.编辑mysql

cp /etc/my.cnf.d/mysql-server.cnf{,.back}
vim /etc/my.cnf.d/mysql-server.cnf
[mysqld]
innodb_file_per_table = 1
log-bin=mysql-bin
skip_name_resolve=1

4.启动mysql,添加一下数据库,表,插入数据等

create database vsftpd;#建立虚拟用户数据库,库名vsftpd
use vsftpd; #进入vsftpd数据库
create table users(id int unsigned not null auto_increment primary key, name varchar(100) not null,password varchar(48) not null,unique key(name));  #建立虚拟用户口令表,表名users,插入数据                        
insert into users (name,password) values ('srayban',password('123456')), ('test',password('123456'));
#授权vsftpd这个账号可以读取vsftpd数据库的user表                                                            
grant all on vsftpd.users to 'vsftpd'@'localhost' identified by '123456'
flush privileges;
#查看一下用户
select * from users;

5.配置vsftpd.conf(设置虚拟用户配置项)

cp /etc/vsftpd/vsftpd.conf{,.back}
vim /etc/vsftpd/vsftpd.conf                           
guest_enable=YES                          #开启虚拟用户
guest_username=vuser                 #FTP虚拟用户对应的系统用户,需要创建系统用户
pam_service_name=vsftpd.vusers             #PAM认证文件   这里是手动建立的pam认证文件名

6.创建系统用户vuser

mkdir /ftproot/vuser
useradd  -d /ftproot/vuser vuser
chown -R vuser:vuser /ftproot/vuser
chmod a-w  /ftproot/vuser

7.提供配置文件:/etc/pam.d/vsftpd.vusers

vim /etc/pam.d/vsftpd.vusers  

auth required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=123456 host=127.0.0.1 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
account required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=123456 host=127.0.0.1 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2




这里需要注意的是user和passwd填写的是授权数据库访问账号和密码

crypt=0:表示口令使用明文方式保存在数据库中
crypt=1:表示口令使用UNIX的DES加密方式加密后保存在数据库中
crypt=2:表示口令使用MySQL的password()函数加密后保存在数据库中
crypt=3:表示口令使用MD5散列值的方式保存在数据库中
  1. 重启vsftpd服务
systemctl restart vsftpd

9.注意,我们在登录的时候,是把mysql账号的用户映射成,系统用户vuser,所以我们同样需要拿走vuser的写权限

chmod a-w  /ftproot/vuser

10.虚拟用户的写权限,通过匿名一样的指令进行定义; 还能实现不同的用户有不同的权限; 在/etc/vsftpd/vsftpd.conf 后面添加

user_config_dir=/etc/vsftpd/vusers_config/

我们创建该目录
mkdir -p /etc/vsftpd/vusers_config/
vim srayban
anon_upload_enable=YES

vim test
anon_upload_enable=YES
anon_mkdir_write_enable=YES

11.登录测试ok

原创文章,作者:srayban,如若转载,请注明出处:http://www.178linux.com/77611

(0)
sraybansrayban
上一篇 2017-06-05 23:27
下一篇 2017-06-06 16:38

相关推荐

  • 记事本操作的小小小技巧

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://jeffyyko.blog.51cto.com/28563/140063       大家在查看文本文件的时候,如果内容很多,想快速到达某一位置可能比较麻烦,这时如果按住shift,再点击右侧…

    Linux干货 2015-03-26
  • RAID磁盘阵列

                           又是一周走过      &nbsp…

    2017-08-13
  • RedHat系列linux网络属性配置

    一、Linux网络管理基础 1 路由条目:  目标地址 经下一跳(nexthop) 目标地址的类别: 单个主机: 主机路由 网路接口: 网络路由 目标地址为0.0.0.0/0.0.0.0: 默认路由 2 将linux主机接入到网络中: IP/NETMASK: 本地通信 路由(网关): 酷网络通信 DNS服务器地址: 基于主机名的通信 主dns服务器…

    Linux干货 2016-09-19
  • SELinux——有趣的标签

    SELinux ·SELinux: Secure Enhanced linux,工作与Linux内核中 ·DAC:Discretionary Access Control 自由访问控制 ·MAC:Mandatory Access Control  强制访问控制        &n…

    Linux干货 2016-09-18
  • Linux下文件权限管理轻微总结

    Linux下文件权限管理轻微总结       此文对linux下文件的权限及其如何管理权限进行介绍,涉及到读“r”写“w”执行“x”三个权限,特殊权限SUID、SGID、STICKY、ACL、attr的使用。同时对更改文件的指令chmod、getfacl、setfacl、chattr、lsattr等进行说明。  &nb…

    Linux干货 2016-11-07
  • 使用Storm实现实时大数据分析

    摘要:随着数据体积的越来越大,实时处理成为了许多机构需要面对的首要挑战。Shruthi Kumar和Siddharth Patankar在Dr.Dobb’s上结合了汽车超速监视,为我们演示了使用Storm进行实时大数据分析。CSDN在此编译、整理。 简单和明了,Storm让大数据分析变得轻松加愉快。 当今世界,公司的日常运营经常会生成TB级别的数据。数据来源…

    Linux干货 2015-04-04