vsftpd+MySQL创建虚拟用户在Debian Linux之下

数据库 MySQL
Debian Linux下对vsftpd+MySQL虚拟用户的具体作法在实际中的应用比例还是占为多数的,以下的文章就是对其具体内容描述。

以下的文章主要讲述的是Debian Linux下对vsftpd+MySQL虚拟用户的具体作法,我前两天在相关网站看见Debian Linux下对vsftpd+MySQL虚拟用户的资料,觉得挺好,就拿出来供大家分享。

今天闲来无事做了个ftp,原因很简单就是为了能在别处看到的好东西直接放到我的机器上,嘿嘿!linux下选择ftp服务器还真是不容易,经过一阵思索后就选择了vsftpd,理由就是它号称是linux下最安全的ftp服务器还有还有好多的大型站点都用它来做服务器(这样用起来也比较有面子 :) )。

为了怕在我输入密码时被别人偷看到然后登入我机器乱搞,在加上我本来就讨厌系统有那么多的用户(其实也是像显示自己的手平),所以我决定采用虚拟用户,因为机器中装有MySQL(和PHP搭配之最佳组合),于是我就想将vsftpd+MySQL虚拟用户数据放在MySQL(和PHP搭配之最佳组合)中,好了,就侃到这里,下面进入正题!

第一步:

安装vsftpd

apt-get install vsftpd (Debian就是爽啊!)

系统会自动生成一个配置文件和一个ftp用户供匿名用户使用,vsftpd使用pam方式来验证虚拟用户,因为vsftpd+MySQL虚拟用户的信息保存在数据库中,所以我们还需要一个能够读取数据库内容的本地用户,而且还需要设置它的本地目录:

 

  1. #mkdir /var/ftp  
  2. #useradd -d ftpguest /var/ftp  
  3. #chown ftpguest.nogroup /var/ftp  

 

第二步:安装MySQL(和PHP搭配之最佳组合)

apt-get install MySQL(和PHP搭配之最佳组合)-server MySQL(和PHP搭配之最佳组合)-clent

建立数据库,并添加用户

 

  1. #MySQL(和PHP搭配之最佳组合) -p MySQL(和PHP搭配之最佳组合)>create ftpu;   
  2. MySQL(和PHP搭配之最佳组合)>use ftpu;   
  3. MySQL(和PHP搭配之最佳组合)>create table user(name char(20) binary,passwd char(20) binary);   
  4. MySQL(和PHP搭配之最佳组合)>insert into user (name,passwd) values ('test1',password('1234567'));   
  5. MySQL(和PHP搭配之最佳组合)>insert into user (name,passwd) values ('test2',password('7654321'));   
  6. MySQL(和PHP搭配之最佳组合)>quit   
  7. 让ftpguest能访问ftpu和表user:   
  8. #MySQL(和PHP搭配之最佳组合) -u root MySQL(和PHP搭配之最佳组合) 
    -p 
    MySQL(和PHP搭配之最佳组合)>grant select on ftpu.user to ftpguest@localhost identified by '123456';   

 

MySQL(和PHP搭配之最佳组合)>quit

第三步:因为vsftpd是通过PAM验证

所以我们还需要一个MySQL(和PHP搭配之最佳组合)通过PAM验证的包,在Debian下它叫做libpam-MySQL(和PHP搭配之最佳组合)

apt-get install libpam-MySQL(和PHP搭配之最佳组合)

然后打开vsftpd的pam验证:

 

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

将以前的内容注释掉,然后加入以下内容:

auth required pam_MySQL(和PHP搭配之最佳组合).so user=ftpguest passwd=123456 host=localhost db=ftpu table=user usercolumn=name passwdcolumn=passwd crypt=2

account required pam_MySQL(和PHP搭配之最佳组合).so user=ftpguest passwd=123456 host=localhost db=ftpu table=user usercolumn=name passwdcolumn=passwd crypt=2

上面的内容应该能看明白吧,那个crypt=2表示经过MySQL(和PHP搭配之最佳组合)的password()机密后的东西!

第四步:修改vsftpd.conf文件

 

  1. #vi /etc/vsftpd.conf  

加入:

 

  1. uest_enable=yes   
  2. guest_username=ftpguest   
  3. #表示ftpguest为vsftp的虚拟用户   
  4. virtual_use_local_privs=yes   
  5.  

 

vsftpd+MySQL虚拟用户与本地用户有相同的权限

 

  1. write_enable=yes   
  2. anon_upload_enable=yes   
  3. anon_other_write_enable=yes   

 

允许虚拟用户上传,修改和删除文件

 

  1. chroot_local_user=yes  

虚拟用户只能访问自己的目录

 

  1. anonymous_enable=no   
  2. local_enable=yes   

 

关闭匿名用户访问,开启本地用户访问

第五步:

本来来到第四步已经完成了,可是后来一想,不对,那要是每次上传的东西都不同,到时把那个目录弄得乱七八糟的怎么管理啊,能不能为每个vsftpd+MySQL虚拟用户创建一个目录呢,比如说将music用户上传的文件放在放在~/music下,将doc用户上传的文件放在~/doc下呢?

能!当然能了,看看我怎么做?

首先在数据库中添加music和doc两个vsftpd+MySQL虚拟用户接下来:

 

  1. #mkdir /etc/vsftpd_user_conf   
  2. #cd /etc/vsftpd_user_conf   
  3. #touch music   
  4. #echo "local_root=/home/username/music" > music   
  5. #touch doc   
  6. #echo "local_root=/home/username/doc" > doc   
  7. #mkdir /home/username/music   
  8. #chown ftpguest.nogroup /home/username/music   
  9. #chmod 600 /home/username/music   
  10. #chown ftpguest.nogroup /home/username/doc   
  11. #chmod 600 /home/username/doc   

 

然后在vsftpd.conf中加入: user_config_dir=/etc/vsftpd_user_conf,大功告成,你明白了吗?

【编辑推荐】

  1. 实现MySQL自动启动很简单
  2. MySQL数据库的同步实例的实际操作
  3. 修改MySQL root密码5步骤介绍
  4. 提高MySQL连接数,很简单
  5. 获得MySQL运行报告,并不难

 

责任编辑:佚名 来源: 互联网
相关推荐

2011-08-23 17:26:05

2011-02-24 09:14:37

vsFTPd虚拟用户

2011-03-04 10:05:10

Vsftpd虚拟用户

2010-05-25 16:23:04

安装MySQL

2011-03-04 14:47:58

Vsftpd虚拟用户

2011-03-03 17:02:50

Vsftpd

2012-08-24 15:13:34

2010-05-11 11:18:06

Mysql mysql

2010-02-22 18:27:14

CentOS vsft

2010-12-27 13:26:25

FreeBSDvsftpd虚拟用户

2015-08-25 14:34:20

LinuxvsftpdFTP

2010-05-20 16:13:55

2010-02-04 13:43:26

Linux vsFTP

2011-02-21 17:32:37

Vsftpd

2017-05-23 14:56:49

MySQLvsftpd虚拟用户

2011-02-23 10:54:11

Debianproftpdmysql

2010-01-13 13:57:09

CentOS vsft

2010-07-01 13:29:08

vsftpd

2010-06-07 09:03:33

MySQL大小写

2010-06-11 17:24:47

MySQL镜像数据库
点赞
收藏

51CTO技术栈公众号