0

ユーザーのパスワードをリセットするには、どの PAM 呼び出しを行う必要がありますか? 私はそれを把握することはできません。

バックグラウンド:

私は組み込みのLinuxデバイスに取り組んでいます。顧客はこのデバイスをインストールし、ユーザー アカウントを作成します。これらのセカンダリ ユーザー アカウントのいずれかがロックアウトされた場合、またはユーザーがパスワードを忘れた場合、ユーザー #1 がユーザー #2 のパスワードをリセットできる方法が必要です。PAM への変換は新しいもので、現在切り替え中です。ユーザーを認証するために私が行う呼び出しは次のとおりです。

pam_start();
pam_authenticate();
pam_acct_mgmt();
pam_end();

私はpam_chauthtok()自分のパスワードを変更することについて理解していません。-- それまたは別の同様の呼び出しを使用して、別のユーザー アカウントに新しいパスワードを割り当てることができます。

4

1 に答える 1

1

別々のユーザーを持つことの要点は、お互いのパスワードを変更するなどのことができないということです。PAM でユーザーのパスワードを変更するには、そのユーザーになる必要があります。これを行う最も簡単な方法は、setuid-root バイナリ、またはルートとして実行されるデーモンを用意することです。デーモンはsetuid、 などを呼び出して目的のユーザーになり、パスワードを変更する操作を実行します。

もちろん、これによりシステム全体が大きなリスクにさらされます。特に、これらの問題にまだ熟練していない場合(質問から明らかです)、この機能が必要かどうかをよく考えてください。 、それを処理するために専門家を雇うべきかどうか。

于 2012-02-16T02:32:17.403 に答える