我正在尝试设置libnss-mysql和libpam-mysql 。 到目前为止,一切都一直工作。 我可以使用id来获取有关存储在我的数据库中的用户的信息。 getent passwd也在工作。 然而, getent shadow不是。 此外,我无法使用passwd更改存储在数据库中的用户的passwd 。 有没有办法解决这些问题?
顺便说一句,我正在运行Ubuntu 10.04作为最小的虚拟机。
更新
我改变的唯一configuration文件是/etc/nss-mysql-root.conf和/etc/nsswitch.conf 。 我很确定前两个是正确的。 因为他们只是configuration数据库的访问方式。 我只在后面三行添加了“mysql”这个词:
passwd: compat mysql groups: compat mysql shadow: compat mysql
我没有碰到任何其他configuration文件。 如果您需要查看其他文件,请让我知道,因为现在我不知道哪个其他configuration文件可能是感兴趣的。
通常情况下,除非你是根,否则getent shadow将不会返回任何东西。
您需要更改/etc/pam.d中的PAMconfiguration以使用mysql PAM模块。
之后,您将能够使用正常的passwd命令更改密码。