Ubuntu 7.10 Server服务安装手记(3)—— 安装pure-ftpd-mysql
先安装支持读取mysql虚拟用户的pureftpd
安装支持mysql虚拟用户的pureftpd也是为了方便管理pureftpd的虚拟用户,当然你也可以不安装。另外,ubuntu下的pure-ftpd和pure-ftpd-mysql是互斥的,两个包只能安装一个。
- sudo apt-get install pure-ftpd-mysql
安装好了pureftpd以后,需要现在mysql中建立一个保存虚拟用户数据的表
使用浏览器打开地址http://xxxx/phpmyadmin/,新建一个数据库pureftpd(也可以使用已存在的数据库),然后在该数据库中使用下列SQL语句建立用户的数据表:
- CREATE TABLE IF NOT EXISTS `users` (
- `User` varchar(50) NOT NULL,
- `Password` varchar(64) NOT NULL default '',
- `Uid` varchar(11) NOT NULL default '-1',
- `Gid` varchar(11) NOT NULL default '-1',
- `Dir` varchar(128) NOT NULL default '',
- `ULBandwidth` smallint(5) NOT NULL default '0',
- `DLBandwidth` smallint(5) NOT NULL default '0',
- `comment` tinytext NOT NULL,
- `ipaccess` varchar(15) NOT NULL default '*',
- `QuotaSize` smallint(5) NOT NULL default '0',
- `QuotaFiles` int(11) NOT NULL default '0',
- `status` varchar(20) NOT NULL default '',
- PRIMARY KEY (`User`),
- UNIQUE KEY `User` (`User`)
- ) ENGINE=MyISAM
然后打开phpmyadmin创建可以操作这个表的用户,输入如下SQL语句:
- GRANT ALL ON pureftpd.* to pureftpd@'localhost' identified by 'purefptd';
其中第一个pureftpd代表的是刚才建立的数据库名字,第二个pureftpd是新建的mysql用户名,最后一个pureftpd表示的是这个mysql用户访问数据库的密码。
下面进入pureftpd的设置目录
- cd /etc/pure-ftpd
配置pureftpd的mysql配置文件
- sudo pico db/mysql.conf
找到如下几行:
- MYSQLUser root
- MYSQLPassword rootpw
- MYSQLDatabase pureftpd
改为:
- MYSQLUser pureftpd
- MYSQLPassword pureftpd
- MYSQLDatabase pureftpd
其他值保持默认即可。
另外,在conf目录中增加一个文件:
- sudo pico conf/ChrootEveryone
文件内容是
- yes
这个文件的作用是限制了每个登录的虚拟用户只能在自己的根目录内进行操作,否则就可以进入其他虚拟用户的根目录了。
如果对phpmyadmin比较熟悉,就可以直接使用它来操作pureftpd的users表来进行mysql虚拟用户的管理了。另外也可以通过pureftpd_php_manager这个软件来进行管理。
下子pureftpd_php_manager.zip,将其解压缩到某个目录,比如/server/www/from1979.cn/pureftpd
修改pureftpd_php_manager的配置文件:
- sudo pico pureftp.config.php
找到
- $PUREFTP_CONFIG_FILE = '/etc/pureftpd-mysql.conf'
修改为:
- $PUREFTP_CONFIG_FILE = '/etc/pure-ftpd/db/mysql.conf'
然后还得修改/etc/pure-ftpd/db/mysql.conf的权限,让apache2的用户能够读取它,比如:
- sudo chown www-data /etc/pure-ftpd/db/mysql.conf
配置好了以后,就可以通过http://from1979.cn/pureftpd/来进行ftp用户的维护了。当然,实际应用过程中需要对这个目录的权限进行保护,否则就是大大的安全漏洞了。
注意:在给虚拟主机设定ftp帐号的时候,要注意users表中的Uid和Gid这两个字段的值。
默认情况下ubuntu的apache2运行用户是www-data这个用户,它在系统中uid和gid都是33。
可以使用id命令来查询:
- id www-data
所以在users表中所有虚拟主机的ftp用户的gid和uid都必须是这个值(33或者www-data)
另外还需要修改pureftpd的设置,将MinUid改小一些,否则虚拟主机的ftp用户都无法登录。
ubuntu下的pureftpd没有采用常用的配置文件方式,而是在配置目录下保存了一些文件,文件名就是配置的字段,文件内容就是配置的字段值。
修改pureftpd的MinUid:
- sudo pico conf/MinUID
将1000改为www-data的id值33
一切配置妥当以后,让pureftpd重新加载配置文件
- sudo /etc/init.d/pure-ftpd-mysql force-reload
现在就可以使用刚才建立的ftp用户来登录ftp服务器了。
PR: 0
