ubuntu804server+vsftpd+mysql详细

Web、Mail、Ftp、DNS、Proxy、VPN、Samba、LDAP 等基础网络服务
回复
iliaojie
帖子: 66
注册时间: 2007-10-09 20:40
联系:

ubuntu804server+vsftpd+mysql详细

#1

帖子 iliaojie » 2008-11-21 12:20

ubuntu+vsFTPd+mysql+多用户
作者:空位
实例测试:空位

注:不懂MYSQL的人就不用往下看了,因为好多MYSQL的教程本人省略不做说明;

说明:网上搜一堆的东西没几个不是一样的内容,非常郁闷,所以自己来亲手实例并写下此教程。(也有可能是我太笨了,)
说明:用MYSQL,是为了方便用户可以自己修改密码而已

一、UBUNTU 8.041安装教程(略)
二、安装vsFTPd (UBUNTU下是可以apg-get 安装的.本教程均采用ROOT用户为例#,如为$请在所有命令前加上sudo)

1\安装
#apg-get install vsftpd
注:vsftpd安装的时候会自动安转一个用户名为:ftp密码为:ftp的用户。可以将其删除,(因为谁也不想用默认的用户名和密码的)

2\删除vsftpd默认生成的FTP用户:
#vim /etc/passwd
注:不会用vim编辑器的人可以用自己喜好的工具进行编辑

3\创建自己的FTP帐号和密码(注:可以理解为vsFTPd运行所需的帐号和密码)
#useradd kongwei -d /var/www -s /bin/false
(解:#useradd kongwei新建一个叫kongwei的用户)
(解:-d /var/www 帐号的目录,也就是你FTP的目录)
(解:-d /bin/false 使此帐号不能登陆系统)
注:此新建的用户可以理解为vsFTPd运行所需的帐号和密码

4\设置kongwei的密码
#passwd kongwei
例:我们设为:cctvftp

三、MYSQL安装程(略)

四、在MYSQL中新建FTP多用户的数据库(先用已有管理权限MYSQL帐号登陆MYSQL ,并创建数据库)
mysql>;create database vsftp;
mysql>;use vsftpd;

五、在mysql中vsftp库中建立表。
mysql>;create table users(name varchar(100) binary,passwd varchar(100) binary);

六、在users表中建立两个用户(也就是插入两条数据)
   mysql>;insert into users (name,passwd) values ('test1',password('123456'));
   mysql>;insert into users (name,passwd) values ('test2',password('654321'));
  
七、新建MYSQL帐号kongwei 密码为cctvftp 并赋于他能读取vsftpd库的权限,并退出MYSQL登陆
mysql>;grant select on vsftp.users to kongwei@localhost identified by 'cctvftp';
mysql>;quit

八、安装mysql的PAM验证

1\安装
#apt-get install libpam-mysql

九、设置vsftpd的PAM验证文件

1\装vsftpd.pam 复制到/etc/pam.d/vsftpd
#cp /usr/share/doc/vsftpd/EXAMPLE/VIRTUAL_USERS/vsftpd.pam /etc/pam.d/vsftpd

2\编辑vsftpd
#vim /etc/pam.d/vsftp (注:不会用vim编辑器的人可以用自己喜好的工具进行编辑)

3\编辑内容替换如下
auth required /lib/security/pam_mysql.so user=kongwei passwd=cctvftp host=localhost db=vsftp table=users usercolumn=name passwdcolumn=passwd crypt=2

account required /lib/security/pam_mysql.so user=kongwei passwd=cctvftp host=localhost db=vsftp table=users usercolumn=name passwdcolumn=passwd crypt=2
注:这里懂MYSQL的人都看得懂,所以不做多讲
说明:crypt= 0为不加密,1为使用UNIX系统的DES加密,2为mysql的password()函数加密,3为使用md5的散列方式。

十、配置vsftpd.conf

1\编辑vsftpd.conf
#vim /etc/vsftpd.conf

2\里面加入如下两行,必要的
guest_enable=YES
guest_username=kongwei
user_config_dir=/etc/vsftpd_user_conf

3\其它参数自己配或照我的来


pam_service_name=vsftpd #验证方式

tcp_wrappers=YES #是否可以使用tcp_wrappers防火墙

anonymous_enable=NO #允许匿名使用FTP?

local_enable=YES #允许本地系统用户登陆

chroot_local_user=YES #你可以限制本地用户的主目录。

guest_enable=YES #为关键选项,必须开启

guest_username=kongwei #一个后建的本地用户,不能登陆系统的那个

virtual_use_local_privs=YES #当该参数激活(YES)时,虚拟用户使用与本地用户相同的权限。当此参数关闭(NO)时,
虚拟用户使用与匿名用户相同的权限

user_config_dir=/etc/vsftpd_user_conf #各用户配置目录

listen=YES #运行

listen_port=5637 #端口
user_sub_token=$USER

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30999



十一、配置FTP用户(俗称的虚拟用户)

1\先建立保存的文件夹
#mkdir /etc/vsftpd_user_conf

2\在vsftpd_user_conf建立用户文件
#vim /etc/vsftpd_user_conf/test1 (注:文件名和表里的用户要一样)

3\文件里的内容是:

#主目录
local_root=/var/www/test1
#开放匿名用户浏览权限
anon_world_readable_only=NO
#取消任何形式的FTP写入命令。
write_enable=YES
#开放上传权限
anon_upload_enable=YES
#可创建目录的同时可以在此目录中上传文件
anon_mkdir_write_enable=YES
#FTP上本地的文件权限,默认是077,您可以改为022
local_umask=022

4\说明:每一个用户要对立一个文件。如上,并且文件名要和数据库表里的用户为一样

十二、忘了权限了(补上)

#chown kongwei.kongwei /var/www
#chmod 755 /var/www


十三、重启即可使用

#/etc/init.d/vsftpd restart



楼下提的VSFTPD的问题已修正,本教程绝对可用,(可能是写得不够细,自行研究吧,仅供参考;本人多次架构均无问题)
上次由 iliaojie 在 2009-09-24 15:23,总共编辑 2 次。
chenzhonghang1
帖子: 36
注册时间: 2008-10-28 15:46

Re: ubuntu804server+vsftpd+mysql详细

#2

帖子 chenzhonghang1 » 2008-11-21 15:19

VSFTPD 装上后,FTP 服务不是就能用了吗?
再加个mysql, 有什么优势呢?
iliaojie
帖子: 66
注册时间: 2007-10-09 20:40
联系:

Re: ubuntu804server+vsftpd+mysql详细

#3

帖子 iliaojie » 2008-11-24 22:52

web admin
Ubuntu-Server群:11032329
Ubuntu群:48982199未满 33653414满
htc10
帖子: 2
注册时间: 2008-11-25 10:20

Re: ubuntu804server+vsftpd+mysql详细

#4

帖子 htc10 » 2008-11-25 10:33

五、在mysql中vsftpd库中建立表。
mysql>;create table users(name char(16) binary,passwd char(16) binary);

六、在users表中建立两个用户(也就是插入两条数据)
   mysql>;insert into users (name,passwd) values ('test1',password('123456'));
   mysql>;insert into users (name,passwd) values ('test2',password('654321'));

这两条一看就是错的 41个字符的密码用16个字符 能登陆ftp才怪
头像
taotaox
帖子: 62
注册时间: 2007-12-05 18:32

Re: ubuntu804server+vsftpd+mysql详细

#5

帖子 taotaox » 2009-05-29 22:28

auth required /lib/security/pam_mysql.so user=kongwei passwd=cctvftp host=localhost db=vsftp table=users usercolumn=name passwdcolumn=passwd crypt=2
account required /lib/security/pam_mysql.so user=kongwei passwd=cctvftp host=localhost db=vsftp table=users usercolumn=name passwdcolumn=passwd crypt=2
这里面好像楼主有写错的地方:

db=vsftp,在上面建立数据库的时候是vsftpd,现在变成了vsftp,楼主在哪copy的吧
头像
relaxssl
帖子: 1448
注册时间: 2007-01-30 7:13

Re: ubuntu804server+vsftpd+mysql详细

#6

帖子 relaxssl » 2009-09-02 12:05

写得比较模糊。
头像
mickeywaley
帖子: 1427
注册时间: 2009-03-19 9:19
系统: ubuntu
来自: 江苏
联系:

Re: ubuntu804server+vsftpd+mysql详细

#7

帖子 mickeywaley » 2009-12-04 23:10

学习了
回复