PAMは、権限のないプロセスでユーザーパスワードをどのように確認しますか?

PAMは、権限のないプロセスでユーザーパスワードをどのように確認しますか?

権限のない画面ロックから呼び出されると、PAMはユーザーのパスワードを確認しようとします。たとえば、

screenFedora 26のパッケージでSUIDルートバイナリが見つかりませんが、lockscreenコマンド(Ctrla Ctrlx)は引き続き機能します。xsecurelockまた、SUIDルートを設定するMakefileも表示されません。

混乱しています。どのように動作しますか?私のユーザーに読み取り権限がありません/etc/shadow。 OpenWallを使用しません。pam_tcbユーザー固有のシャドウファイルの場合。

答え1

pamがインストールしたバイナリを見るとunix_checkpwd

unix_chkpwdは、現在のユーザーのパスワードを確認するために使用されるpam_unixモジュール用のヘルパープログラムです。また、シャドウでパスワードとアカウントの有効期限を確認します。コマンドラインから直接実行するためのものではなく、実行するとセキュリティ違反が記録されます。

通常、setuidルートまたはsetgidshadowをインストールします。

ヘルパーのインタフェース - コマンドラインオプションと入力/出力データ型はpam_unixモジュールの内側にあり、アプリケーションから直接呼び出すべきではありません。

関連情報