前些天用vsftpd mysql实现虚拟用户登录,把偶的菜鸟笔记和大家分享一下,有什么问题请指正
特别申明:本文不适合Linux老鸟们
HTML版本:http://guitarbug.googlepages.com/vsftpdmysql.html
-----------------------------
Debian vsftpd MySQL实现虚拟用户
(posted by guitarbug @ 2006.6.12)
一,需求
1,虚拟用户登录
由于之前配置成功了postfix MySQL虚拟用户登录,体会到了使用虚拟用户的好处和灵活性,所以这次也考虑采用虚拟用户,并且将FTP虚拟用户的信息也存储在MySQL中,这样以后用PHP等写一些WEB GUI的管理程序,统一管理用户,还是蛮方便的.
2,限制IP的匿名登录
开放匿名登录,但是只允许特定的IP可以匿名登录
3,不同用户,不同目录,不同权限
听起来有点像绕口令吧,举例来说,有2个用户,分别是普通用户(normal)和管理员(admin),FTP有2个目录,分别是incoming和pub,要实现如下权限设置:
代码:
incoming pub
normal 读/写 只读
admin 读/写 读/写
4,通过FTP管理Web站点
服务器上还架设了Apache,而网站管理员对Linux又不是很熟悉,而且也不想开放一个帐号给网站管理员,以免他登录到系统上去,把系统搞的乱78糟,所以参考Internet上提供虚拟主机的流行做法,就是通过FTP来管理网站,所以需要提供一个可供网站管理员登录FTP进行网站管理的帐号.
5,扩展功能
待定..
二,选择FTP服务器软件
Linux下架设FTP站点,有很多优秀的FTP服务器软件可供选择,例如Wu-FTPD,Pure-FTPD,ProFTPD以及vsFTPD等等,要想选择一个适合自己需求的FTP服务器软件,也需要费点脑筋才行,对于我来说,选择 vsftpd(very secure FTP daemon),主要有以下两点原因:
1,选择原则一
有人说,哪个FTPD是你最熟悉的就用哪个,不过由于我之前没有在Linux下架设FTP站点的经验,所以,对我来说,一切都是新的起点.在vsftpd的官方主页上看到了Debian官方FTP,RH官方FTP等都使用了vsftpd,于是"随波逐流"吧,这样看起来会有面子些~
2,选择原则二
第二点很大程度取决于vsftpd(very secure FTP daemon)的名字,因为它是很安全的FTP软件嘛,哈哈,再说Debian官方等FTP都使用了vsftpd,选择它应该没错的~
PS:FTP服务器软件的选择可以参考"鸟哥的Linux私房菜中的简易vsftpd服务器架设"一文.
三,实现
基于Debian GNU/Linux 3.1 Sarge 和 vsftpd-2.0.3
1,需要的软件包
1),vsftpd
very secure FTP daemon
2),mysql-server,mysql-client
前者是MySQL数据库服务器,用于存储虚拟用户信息,后者提供一个命令行的MySQL Client. 由于我之前配置postfix时,已经安装过了MySQL,所以我不必安装这个包了^_^
3),libpam-mysql
vsftpd是通过PAM验证用户信息的,这个包可以让PAM去读取MySQL完成验证.
2,安装
以root登录Debian,输入以下命令,搞定~
代码:
#apt-get install vsftpd,libpam-mysql
3,创建一个必要的本地用户
虽说是虚拟用户,不过,由于虚拟用户的信息存储在MySQL数据库中,所以还是需要一个能够读取MySQL数据库的本地用户.
1),创建本地用户的家目录,此目录也是FTP的家目录
2),创建名为ftpguest的本地用户
代码:
#useradd ftpguest -d /home/ftp
3),修改FTP家目录的所有者和组
代码:
#chown ftpguest.nogroup /home/ftp