PAMでハードコードされたパスワードを使用する


2

PAMを認証ソースとして使用して、ログインしているユーザーのパスワードの入力を求めるアプリケーションがあります。そのアプリケーションの現在のPAM構成は次のとおりです。

@include common-auth
@include common-account

ログインしたユーザーの代わりに、このアプリケーションで定義するカスタムパスワードとハードコードを使用するようにします。どうすればそれを達成できますか?

回答:


3

システムの認証メカニズムをインポートする代わりに、pam_userdbを構成するか、簡単なカスタムPAMモジュールを自分で作成します。スタック内の唯一のモジュールとしてロードします。

auth requisite pam_userdb.so db=/etc/security/myapp.passwd.db

@include common-account

ありがとうございました!これはうまく機能します。を使用してpam_userdbデータベースファイルを作成しましたdb_load -T -t hash myapp.passwd.db。のdb引数にpam_userdb.so.dbPAMによって暗黙的に追加されるため、接尾辞を付けないでください。
bbc

0

1つの(おそらく少し単純な)代替手段はpam_pwdfileを使用することです。基本的に、デフォルトの/etc/passwdファイルのようにフォーマットされたユーザー指定のファイルに対する認証を許可します。

pam_pwdfileは開発されていないようですが、おそらく機能するだけで、新しい機能は必要ありません。また、Debianアーカイブでも入手でき、セキュリティサポートを提供します(必要な場合)。

使用するには、(たとえばlibpam-pwdfileDebianに)インストールし、pam configに次のような行を追加します:

auth        required    pam_pwdfile.so pwdfile=/path/to/passwd_file

詳細については、READMEを参照してください。

この/path/to/passwdファイルには、コロンで区切られたユーザー名とハッシュされたパスワードのリストが含まれている必要があります。各行に1人のユーザーがいます。ハッシュされたパスワードは、/etc/shadowファイルから取得するか、で生成できますmkpasswd。たとえば、SHA-512ハッシュパスワードを取得するには:

$ mkpasswd -m SHA-512

サンプルpasswdファイルは次のようになります。これは、SHA-512と暗号化解除されたハッシュパスワードを示しています。

user1:$6$usgsi1RNu7wI$4rly97OA5ot5nsVSusW1jmwdjpHY7qbzGOX.E/TPfJqDuFnmMoCGVd1p1U/ew7e599QQLPnfkW0yLyuyaoAPl0
user2:NxR.0DdgI2Jnc

同様の代替pam-moduleはpam_fshadowですが、このモジュールはDebianによってパッケージ化されているようには見えないため、これ以上調査していません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.