web-dev-qa-db-ja.com

Linuxのログイン/パスワードを検証するプログラムによる方法

有効なUNIXアカウントに対応するユーザー名とパスワードを検証したいと思います。

私が使用している現在の解決策は、パスワードプロンプトを待ってからパスワードを入力し、ログインが成功するかどうかを確認することを期待しています。

ログイン/パスワードを検証できるカーネルAPIまたはユーザースペース関数はありますか?.

私の混乱の一部は、これがカーネルスペースサービスであるかどうかわからないことだと思いますか?

3
Ivan Novick

Pamを使用する必要があります。 debian/ubuntuでは、次のことができます。

apt-get install python-pam

pythonpamtest.py の単純なコード:

/usr/share/doc/python-pam/examples/pamtest.pyファイルを参照してください。それは本当に短く、あなたが望むことをします。

それをテストするには、以下を実行します。

python /usr/share/doc/python-pam/examples/pamtest.py

[〜#〜] c [〜#〜]pamexample.c にも例があります。

それをテストするには:

gcc /usr/share/doc/python-pam/examples/pamexample.c -lpam -l pam_misc
./pam_misc theuser
4
Michał Šrajer

ユーザーの資格情報が適切かどうかを確認するには、ユーザーとしてログを記録してみてください。

 su-ユーザー名

しかし、PAMについて読むことは、長期的にはより良いルートかもしれません

2
Hubert Kario