2

ホストと NIS にあるユーザー名の簡単な認証を行う必要があります。このコードは Python で書いています。
PAM を使用して認証を行ってみました。このために、Python Pam という Python モジュールをダウンロードしました。

私が使用するコード:

import pam   
pam.authenticate('root',<password>,<service>)

<service>/etc/pam.d/ で作成した構成ファイルは どこにありますか
ファイルには次のコードが含まれています

#%PAM-1.0
auth     requisite      pam_unix.so


このコードは、正しい答えを与える特定のホストでは機能しますが、他のホストでは機能しません<service>

pam.authenticate('root',<password>,'sshd')

特定のホストでは、正しいパスワードに対して依然として False を返します。

なぜこれが機能しないのか、誰にもわかりません。pam やモジュールを使用する必要はありません。ユーザー名を認証するだけのPythonから呼び出すことができるUNIXのコマンドはありますか? Linux、Solaris、HP-UX、AIX を含むすべての UNIX ベースのシステムで動作することが望ましいです。
ありがとう

4

2 に答える 2

1

両方

 pam.authenticate('myusername', 'mypassword', 'sshd')

 pam.authenticate('myusername', 'mypassword')

私のマシンではログインは正常に機能します。モジュールのドキュメントpamはほとんど存在しないため、サービスを正しく構成したかどうかはわかりません。

于 2011-01-03T20:33:59.137 に答える
1

その答えは、/etc/pam.d/作成したファイルの 3 番目のパラメーターにあります。

このコマンドが機能しないマシンで試してください。はい、root または sudoer root である必要があります。

# ldconfig -v |grep pam_unix.so

ほとんどの場合、シンボリック リンクは からの実際の pam 共有ライブラリにつながりませんpam_unix.so。それを追加するか、構成ファイルのパラメーターをld、リンクを見つけるために使用できるものに変更します。

于 2012-08-22T23:38:47.183 に答える