是否可以使用(mysql)数据库来管理 SSH 登录凭据而不是 /etc/passwd ?
我知道我可以使用 ldap,但我只想要简单的用户管理,而 ldap 对于这项工作来说似乎有点过于强大了。
答案1
是的。Linux 身份验证基于可插入式身份验证模块 (PAM),可轻松从一个身份验证后端切换到另一个。只需安装和配置 PAM MySQL 模块,并在 MySQL 中配置相应的用户数据库即可。
预编译包可在电力供应处RHEL/CentOS 的存档pam_mysql
和pam-mysql
包应该在 Debian/Ubuntu 中可用。
答案2
虽然 PAM-MySQL 可以管理登录凭据,但它是一个不完整的解决方案,因为它仅处理身份验证部分。它不会在系统上创建用户帐户。例如:
ls -l
将不会使用 PAM-MySQL 将 UID 解析为用户名。- 用户的主目录不存储在 MySQL 中。
换句话说,PAM-MySQL 是 的替代品/etc/shadow
,而不是 的替代品/etc/passwd
。您需要创建一个/etc/passwd
条目和为每个用户添加一个 MySQL 条目,或者使用以下方法补充 PAM-MySQLNSS MySQL。
LDAP 确实是完成这项工作的更好工具,因为您将能够将用户帐户信息集中在一个地方。我不认为它功能强大。相反,它是一种专门设计用于管理用户帐户的数据库,因此最佳做法是仅使用 LDAP 作为标准解决方案,而不是将非标准系统与 MySQL 拼凑在一起。OpenLDAP 或 389 Directory Server 将是比 MySQL 更合适的用户数据库。(如果您坚持的话,它们都可以配置为使用 SQL 后端。)