我已经安装了pure-ftpd-mysql,并且可以使用md5密码散列。 这不是很安全,所以我想用sha512,我在鸽舍里使用的方式使用地穴。
如何在pure-ftpd中设置这个?
使用sha512通过创build新用户:
INSERT INTO `ftpd` (`User`, `status`, `Password`, `Uid`, `Gid`, `Dir`, `ULBandwidth`, `DLBandwidth`, `comment`, `ipaccess`, `QuotaSize`, `QuotaFiles`) VALUES ('MyUserName', '1', ENCRYPT('_mypassword_', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), '2001', '2001', '/var/www/test', '100', '100', '', '*', '50', '0');
configuration文件中的值:
MYSQLCrypt md5 MYSQLGetPW SELECT Password FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
所以我的问题是我需要在configuration文件中使用上述方法生成的密码。
我认为改变MYSQLCrypt
到crypt
应该是足够的。 但是这不起作用。
万一其他方法不起作用手册介绍了如何创build一个authentication模块http://download.pureftpd.org/pure-ftpd/doc/README.Authentication-Modules (但我该如何启用它?)
pure-ftpd-mysql支持sha512 crypt与盐。
这很简单:
MYSQLCrypt crypt
确保您的Password
栏足够长。 对于crypt $ 6 $,这是106个字符。
所以处理查询的表结构可能是这样的:
CREATE TABLE ftpd ( User varchar(16) NOT NULL default '', status enum('0','1') NOT NULL default '0', Password varchar(106) 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, PRIMARY KEY (User), UNIQUE KEY User (User) ) ENGINE=MyISAM;