转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> SyBase >> 正文
Debian Linux下vsftpd+mysql虚拟用户作法         ★★★★

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

作者:闵涛 文章来源:闵涛的学习笔记 点击数:740 更新时间:2009/4/22 23:07:35

今天闲来无事做了个ftp,原因很简单就是为了能在别处看到的好东西直接放到我的机器上,嘿嘿!linux下选择ftp服务器还真是不容易,经过一阵思索后就选择了vsftpd,理由就是它号称是linux下最安全的ftp服务器还有还有好多的大型站点都用它来做服务器(这样用起来也比较有面子 :) )。为了怕在我输入密码时被别人偷看到然后登入我机器乱搞,在加上我本来就讨厌系统有那么多的用户(其实也是像显示自己的手平),所以我决定采用虚拟用户,因为机器中装有Mysql,于是我就想将虚拟用户数据放在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

大功告成,你明白了吗?

 

参考资料:

http://www.gbunix.com/article/article.php/427

http://dev.csdn.net/article/33/33451.shtm


[C语言系列]C# 和 Linux 时间戳转换  [Web开发]PHP flock文件锁介绍
[Web开发]flock() Linux下的文件锁  [电脑应用]Linux下的六个免费的虚拟主机管理系统介绍
[电脑应用]Linux数据库大比拚  [操作系统]在Windows中玩转Linux操作系统
[办公软件]在RedHat Linux 9里安装gaim0.80  [办公软件]掌握 Linux 调试技术
[办公软件]理解 Linux 配置文件  [聊天工具]Real10 & Xpdf installation on Linux Box
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台