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

相关推荐

  • Linux第二周学习博客作业

    对第二周学习的内容进行总结

    Linux干货 2017-12-10
  • Linux基础入门1

    Linux基础入门1 目录 计算机组成及其功能 简述Linux发行版 Liunx哲学思想 Linux命令格式 Linux系统获取命令帮助信息 Linux基础目录简述 1. 计算机组成及其功能 ENIARC:埃尼阿克,世界上第一台通用计算机,诞生于1946年美国宾夕法尼亚大学。 冯诺依曼体系-计算机五大基础部件:运算器、控制器、存储器、输入设备和输出设备。 1…

    2017-12-19
  • 高级文件系统管理2

    逻辑卷管理器(LVM),允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小。允许在多个物理设备间重新组织文件系统。其步骤大体如下:将设备指定为物理卷,用一个或者多个物理卷来创建一个卷组,物理卷你是用固定大小的物理区域(PE)来定义的,在物理卷上创建的逻辑卷是由物理区域组成,可以在逻辑卷上创建文件系统。 一、知识整理 1、LVM设备名:dm-#。 软链接…

    Linux干货 2016-09-13
  • 第一周的博客作业

    1.计算机的组成以及功能:     cpu:就是中央处理器,运算和判断计算机的数据;     储设器:存储计算机的数据;     主板:链接多的计算机的硬件;     I/O设备:输入,输出设备,,如…

    Linux干货 2017-01-05
  • Linux的文件权限(一)

    Linux的文件权限 在Linux的世界里,一切皆文件,用文件代表了系统的所有数据。既然文件那么重要,自然会给文件赋予一定的权限,要不然每个人都可以乱来,那系统会十分危险。所以文件的所有者会给文件设定权限,每个用户在自己权限的范围下做各自的操作。 我们可以先用 ll-d 查看一下文件的权限 第一位代表着问价类型,d 代表着是目录文件,后面九位代表着权限。其中…

    2017-05-30
  • 网络管理(二)之IP地址划分子网、多块网卡共用单一IP

    网络管理(二)IP地址   一、认识学习IP地址的组成: 1、它们可唯一标识IP 网络中的每台设备 2、IP地址由两部分组成: 网络ID:标识网络;每个网段分配一个网络ID 主机ID:标识单个主机;由组织分配给各设备 3、点分十进制计法表示IPv4地址: 4、如下图,将系统中的IP地址用二进制表示,再通过转换合成的十进制数,使用ping命令可得出:…

    Linux干货 2016-09-05