/ etc/passwdの代わりに(mysql)データベースを使用してSSHログイン資格情報を管理する可能性はありますか?
LDAPを使用できることはわかっていますが、単純なユーザー管理のみが必要であり、LDAPはこのジョブでは少し圧倒されているようです。
はい。 Linux認証は、1つの認証バックエンドから別の認証バックエンドへの簡単な切り替えを可能にするプラグ可能な認証モジュール(PAM)に基づいています。 MySQLの対応するユーザーデータベースを使用して、PAM MySQLモジュールをインストールして構成するだけです。
プリコンパイルされたパッケージは、RHEL/CentOSの [〜#〜] epel [〜#〜] アーカイブでpam_mysql
として利用できます。pam-mysql
パッケージはDebianで利用できるはずです。/Ubuntu。
PAM-MySQLはログイン認証情報を管理できますが、認証部分のみを処理するため、不完全なソリューションです。システム上にユーザーアカウントは作成されません。例えば:
ls -l
は、PAM-MySQLを使用してUIDをユーザー名に解決しません。言い換えれば、PAM-MySQLは/etc/shadow
の代わりであり、/etc/passwd
の代わりではありません。ユーザーごとに/etc/passwd
エントリとの両方のMySQLエントリを作成するか、PAM-MySQLに NSS MySQL 。
LDAPは、ユーザーアカウント情報を一元化できるため、実際にこのジョブに適したツールです。私はそれが圧倒されているとは思わない。むしろ、ユーザーアカウントを管理するために特別に設計された一種のデータベースであるため、非標準システムをMySQLでハッキングするのではなく、LDAPを標準ソリューションとして使用するのがベストプラクティスです。 OpenLDAPまたは389Directory Serverは、MySQLよりも適切なユーザーデータベースです。 (必要に応じて、どちらもSQLバックエンドを使用するように構成できます。)