vsftpd虚拟账户(虚拟用户,ubuntu16,舍弃虚拟用户配置文件)

4 篇文章 0 订阅

创建FTP账户有多种方式:

1.创建系统用户

2.创建虚拟用户(基于文件或者数据库),这里主要介绍基于mysql数据库的虚拟用户


步骤一:首先安装mysql与FTP

1.安装mysql:  sudo apt-get install mysql-server  mysql-client  libmysqlclient-dev(或者选择源码安装方式)

2.安装FTP:sudo apt-get install vsftp

步骤二:安装pam_mysql

安装方式1:sudo apt-get install pam_mysql

安装方式2:源码编译安装:

下载链接:https://sourceforge.net/projects/pam-mysql/files/?source=navbar

解压:

tar -xzvf  pam_mysql-0.7RC1.tar.gz

cd pam_mysql-0.7RC1


./configure --with-pam-mods-dir=/lib/security/

如果是源码编译安装的mysql,需要指定mysql安装路劲,如下:

./configure --with-mysql=/usr/local/mysql/ --with-pam-mods-dir=/lib/security/


make

make install

安装过程中会遇到几个常见依赖错误,具体解决方式,随后补发,需要的同学,可以查看本人,下篇文章

另外,在最后启动ftp,登录的时候会遇到一个ubuntu16的系统BUG(其他linux系统没有此BUG),解决方式也见下一章


步骤二:

完成上面安装步骤之后,现在来配置虚拟用户:

1.进入mysql服务,创建一个数据库,并创建一张数据表用来存储虚拟用户账户、密码

mysql -uroot -p (进入数据库服务)

2.建数据库与数据表

create database vsftpd;

use vsftpd;

create table users(name char(16) binary,passwd char(16) binary);

插入一条测试数据

insert into users (name,passwd) values ('test','123456');

3.将users表查询权限付给一个系统用户:

GRANT select on vsftpd.* to vsftpd@localhost identified by '123456';

grant select on vsftpd.* to vsftpd@127.0.0.1 identified by '123456';

(此时系统用户还未创建,稍后创建)

exit;

4.创建一个系统用户:

sudo useradd vsftpd -d /home/vsftpd -s /bin/false (这用户与刚才mysql授权用户必须同名)

5.编辑FTP配置文件:

sudo vim /etc/vsftpd.conf

listen=YES
anonymous_enable=NO
local_umask=022 

umask是在linux中常见的一个东西,它其实是一个掩码。当然,也有umask这样一个命令,它是对用户建立的文件的默认属性的定义。该定义为: 假设umask为022,则对于一个文件夹的话,它的默认属性为 777-022=755,这也就是我们平时建立文件夹的权限。而对于一般的文件的话,则是用 666-022=644. 这个umask在其他地方也经常见到,比如vsftpd中有 local_umask 和 anon_umask, 分别控制着本地用户和匿名用户所建立的文件的属性。


dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
idle_session_timeout=600
data_connection_timeout=20
ftpd_banner=Welcome to Daiyuechuan's FTP server.
listen_port=21
local_enable=YES
pasv_min_port=40000
pasv_max_port=40999
####下面配置很重要

pam_service_name=vsftpd #该用户为系统用户

guest_enable=YES
guest_username=vsftpd
allow_writeable_chroot=YES
chroot_local_user=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
virtual_use_local_privs=YES
#这个是动态模板配置,有了下面两行就不需要再给每个虚拟用户弄一个配置文件了,

否则,每添加一个虚拟用户,就添加一个配置文件,最后还得重启,这个就相当的不work了,

这里的USER是虚拟用户名,所以在你的,ftp访问根目录下,必须建一个与USER同名的目录,否则,提示找不到路径

本人ftp跟目录以    /ftp_dir  为例

user_sub_token=$USER
local_root=/ftp_dir/$USER


6.编辑pam_mysql 配置文件:

sudo vim /etc/pam.d/vsftpd

1.删除里面所有

2.添加两行

auth required pam_mysql.so user=vsftpd passwd=123456 host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=passwd crypt=0
account required pam_mysql.so user=vsftpd passwd=123456 host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=passwd crypt=0

# 注意:
crypt=0: 明文密码
crypt=1: 使用crpyt()函数(对应SQL数据里的encrypt(),encrypt()随机产生salt)
crypt=2: 使用MYSQL中的password()函数加密
crypt=3:表示使用md5的散列方式#上面是两句配置,第一句是以auth开始的,第二句以account开始的。

7.重启FTP服务:

sudo service vsftpd restart

8.测试登录:

ftp localhost

以后每新增一个虚拟用户,只需要创建一个目录即可。。。。

另外,在最后启动ftp,登录的时候会遇到一个ubuntu16的系统BUG(其他linux系统没有此BUG),解决方式也见下一章






 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值