安装完proftpd-mysql后,
首先创建数据库:
CREATE TABLE `ftpuser` (
`id` int(10) unsigned NOT NULL auto_increment,
`userid` varchar(32) NOT NULL default ”,
`passwd` varchar(32) NOT NULL default ”,
`uid` smallint(6) unsigned NOT NULL default ‘65534’,
`gid` smallint(6) unsigned NOT NULL default ‘65534’,
`homedir` varchar(255) NOT NULL default ”,
`shell` varchar(16) NOT NULL default ‘/bin/sh’,
`count` int(11) NOT NULL default ‘0’,
`accessed` datetime NOT NULL default ‘0000-00-00 00:00:00’,
`modified` datetime NOT NULL default ‘0000-00-00 00:00:00′,
PRIMARY KEY (`id`)
) TYPE=MyISAM COMMENT=’ProFTP user table’ ;
CREATE TABLE `ftpgroup` (
`groupname` varchar(16) NOT NULL default ”,
`gid` smallint(6) unsigned NOT NULL default ‘65534’,
`members` varchar(16) NOT NULL default ”,
KEY `groupname` (`groupname`)
) TYPE=MyISAM COMMENT=’ProFTP group table’;
然后修改/etc/proftpd.conf,在其后面添加
SQLConnectInfo db@localhost mysql-user mysql-pwd
# 数据库认证的类型
SQLAuthTypes Backend Plaintext
# 数据库的鉴别
SQLAuthenticate users* groups*
# 指定用来做用户认证的表的有关信息。
SQLUserInfo ftpuser userid passwd uid gid homedir shell
SQLGroupInfo ftpgroup groupname gid members
# 如果home目录不存在,则系统会根据它的home项新建一个目录
SQLHomedirOnDemand on
#目录所有者,nobody为65534.
SQLDefaultGID 65534
SQLDefaultUID 65534SQLLog PASS updatecount
SQLNamedQuery updatecount UPDATE “count=count+1,accessed=now() WHERE userid=’%u’” ftpuser
# Update modified everytime user uploads or deletes a file
SQLLog STOR,DELE modified
SQLNamedQuery modified UPDATE “modified=now() WHERE userid=’%u’” ftpuser
然后重新启动proftpd,注意,首先要
/etc/init.d/proftpd stop
/etc/init.d/proftpd start
以后可以直接:
/etc/init.d/proftpd restart
然后就可以在数据库插入用户了,注意shell不能为空,否则会出现不能登陆的错误。(我在SQL把其默认设置为/bin/sh)。
若出现密码错误,可以检查/var/log/auth.log记录。
发表回复