Authentication 使用pam_userdb.so在Berkeley DB中为vsftpd加密密码

Authentication 使用pam_userdb.so在Berkeley DB中为vsftpd加密密码,authentication,ftp,pam,vsftpd,Authentication,Ftp,Pam,Vsftpd,我正在尝试与一些使用Berkeley DB的虚拟用户一起安装vsftpd。我主要遵循以下指南:。一切正常,但我想在数据库中散列密码。我正在使用CentOS 6.3和glibc 2.12 从pam_userdb.so的manpage中,我假设我可以使用crypt提供的内容。如果我们看一下crypt(3)手册页,我们可以使用SHA-256和SHA-512。我想用其中一个 我的疑问是如何实施它。据我所知,我需要转到pam.d文件,编辑并添加参数crypt,但是。。。我应该给它什么值?SHA-256要5

我正在尝试与一些使用Berkeley DB的虚拟用户一起安装vsftpd。我主要遵循以下指南:。一切正常,但我想在数据库中散列密码。我正在使用CentOS 6.3和glibc 2.12

从pam_userdb.so的manpage中,我假设我可以使用crypt提供的内容。如果我们看一下crypt(3)手册页,我们可以使用SHA-256和SHA-512。我想用其中一个

我的疑问是如何实施它。据我所知,我需要转到pam.d文件,编辑并添加参数crypt,但是。。。我应该给它什么值?SHA-256要5英镑?SHA-512是6号

auth    sufficient pam_userdb.so db=/path/to/db/virtual-users crypt=?
account sufficient pam_userdb.so db=/path/to/db/virtual-users crypt=?
session sufficient pam_loginuid.so
现在我需要数据库中SHA-256/SHA-512中的密码。获取散列的正确方法是什么?我想我必须使用crypt函数。但是,我需要使用Ruby来获取它,有什么办法吗


提前感谢您的帮助,

没有办法。你应该说
crypt=crypt
(其他选项被拒绝),但是
mod_userdb
不会接受非DES散列,至少在你得到一个包含PAM的版本之前是这样(比如Ubuntu Saucy不会)

一、 首先,我编译了我自己的PAM来修复这个问题。

这是。Debian Jessie版本1.1.8-3的libpam模块似乎也已修复

要插入行,请使用db5.3-util或类似工具:

{echo user;echo hash;}db5.3_load-T-T hash/tmp/passwd.db

要生成加密有效的strong
哈希

echo pass|mkpasswd-s-m sha-512


此pam模块的“调试”选项很有用(检查/var/log/auth.log),原样也很有用

谢谢回答,请与我分享您的编译版本或告诉我如何操作?再次感谢!