linux之家
linux之家-让学习更轻松

你的位置:首页>>linux服务器技巧>>Debian Linux下vsftpd+mysql虚拟用户作法

Debian Linux下vsftpd+mysql虚拟用户作法

发表时间:2007-9-23 上午 12:15:26浏览次数:

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

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

Debian Linux下vsftpd+mysql虚拟用户设置步骤:

第一步:

安装vsftpd

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

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

#mkdir /var/ftp

#useradd -d ftpguest /var/ftp

#chown ftpguest.nogroup /var/ftp

第二步:安装mysql

apt-get install mysql-server mysql-clent

建立数据库,并添加用户

#mysql -p mysql>create ftpu;

mysql>use ftpu;

mysql>create table user(name char(20) binary,passwd char(20) binary);

mysql>insert into user (name,passwd) values (''test1'',password(''1234567''));

mysql>insert into user (name,passwd) values (''test2'',password(''7654321''));

mysql>quit

让ftpguest能访问ftpu和表user:

#mysql -u root mysql -p mysql>grant select on ftpu.user to ftpguest@localhost identified by ''123456'';

mysql>quit

第三步:因为vsftpd是通过PAM验证,所以我们还需要一个mysql通过PAM验证的包,在Debian下它叫做libpam-mysql

apt-get install libpam-mysql

然后打开vsftpd的pam验证:

 #vi /etc/pam.d/vsftpd

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

auth required pam_mysql.so user=ftpguest passwd=123456 host=localhost db=ftpu table=user usercolumn=name passwdcolumn=passwd crypt=2

account required pam_mysql.so user=ftpguest passwd=123456 host=localhost db=ftpu table=user usercolumn=name passwdcolumn=passwd crypt=2

上面的内容应该能看明白吧,那个crypt=2表示经过mysql的password()机密后的东西!

第四步:修改vsftpd.conf文件

#vi /etc/vsftpd.conf

加入:

uest_enable=yes

guest_username=ftpguest

#表示ftpguest为vsftp的虚拟用户

virtual_use_local_privs=yes

#虚拟用户与本地用户有相同的权限

write_enable=yes

anon_upload_enable=yes

anon_other_write_enable=yes

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

chroot_local_user=yes

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

anonymous_enable=no

local_enable=yes

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

第五步:

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

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

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

#mkdir /etc/vsftpd_user_conf

#cd /etc/vsftpd_user_conf

#touch music

#echo "local_root=/home/username/music" > music

#touch doc

#echo "local_root=/home/username/doc" > doc

#mkdir /home/username/music

#chown ftpguest.nogroup /home/username/music

#chmod 600 /home/username/music

#chown ftpguest.nogroup /home/username/doc

#chmod 600 /home/username/doc

然后在vsftpd.conf中加入: user_config_dir=/etc/vsftpd_user_conf

大功告成,Debian Linux下vsftpd+mysql虚拟用户作法你明白了吗?

读者体会
暂无回复
姓名:
评论内容:
     
热点导读
Debian Linux下
Squid实现反向代理并且
Linux操作系统下SAM
高效配置Linux代理服务
用VSFTPD搭建FTP服
sendmail+squi
Ubuntu Linux上
Linux系统上把PHP编
Red Hat Linux
Linux系统 2.4和2
让远程Windows系统访
Linux操作系统文件链接
如何将Linux系统的服务
Fedora Linux系
Google推出Linux
教你如何制作软盘版的 Li
阻碍桌面Linux发展的主
Linux操作系统如何设置
如何在红帽企业Linux下
设置Linux的服务自动启
Linux系统下设置用户登
Linux操作系统下设置N
Linux操作系统个性化配
Ubuntu中安装Linu
在Linux操作系统下设置
在Linux桌面上 随意使
Ubuntu6.0.6下的
详细讲解Linux系统下A
Linux攻略 DNS服务
Linux操作系统上摄像头
Copyright 2006-2007 linux77.com Inc. All Rights Reserved
Emai:skyzznj@126.com