ログインを求める代わりに、PAM
「というメッセージがうれしく出てきました。指定されたセッションの項目を作成/削除できません。「パスワードを入力した後、どの項目(そしてどのセッション)を話しますか?
エラーメッセージを含む文字列はlibpam.so.0
(.83.1)にあります。
私のシステムはFedoraバージョン20(Heisenburg)バイナリに基づいています。
成功したログインに必要なものを確認するためにPAMの問題を解決するにはどうすればよいですか?システムログはありません(永続ディスクもなく、initramfsのみ)。
修正する:
SELinuxが無効になっています。
完全なPAM構成を、仮想コンソールからログイン(一般ユーザーとroot)のみを許可する単純な構成に置き換えたいと思います。
Linux-PAM-1.1.8のソースコードlibpam/pam_strerror.c
は、メッセージがPAM_SESSION_ERR
メモリ割り当てエラーやユーザーホームディレクトリを見つけることができないなど、さまざまな内部問題が原因で発生する可能性があるエラーコードに由来することを示しています。エラーメッセージを説明しようとしました。 :-(
/etc/pam.d/login
始点としてマークされたコメントに基づく構成ファイルは次のとおりです。
pam_loginuid.so
(また、顕著な違いなしに含まれているすべての行を削除してみました。)
/etc/pam.d/login:
認証[user_unknown=成功無視=確認無視=無視デフォルト=悪い] pam_securetty.so 認証サブスタックシステム - 認証 認証にはログインが含まれます。 pam_nologin.so アカウントが必要です。 アカウントにはシステム認証が含まれます。 パスワードにはシステム確認が含まれています。 pam_selinux.so セッションを閉じる必要があります。 pam_loginuid.so セッションが必要です。 セッションオプション pam_console.so pam_selinux.so セッションを開く必要があります。 pam_namespace.so セッションが必要です。 セッションオプション pam_keyinit.so 強制キャンセル セッションにはシステム認証が含まれます。 ログイン後のセッションが含まれます。 -セッションオプション pam_ck_connector.so
/etc/pam.d/postlogin:
セッション [成功 = 1 デフォルト = 無視] pam_succeed_if.so service!~ gdm* service!~ su* Quiet セッション[デフォルト=1] pam_lastlog.so nowtmp showfailed セッションオプション pam_lastlog.so 自動 noupdate 表示に失敗する
/etc/pam.d/system-auth:
認証が必要 pam_env.so 適切なpam_fprintd.soを確認してください。 pam_unix.so nullok try_first_passが十分であることを確認してください。 認証が必要 pam_succeed_if.so uid >= 1000 Quiet_success 認証が必要 pam_deny.so pam_unix.so アカウントが必要です。 アカウントで十分です。 pam_localuser.so アカウントが十分です pam_succeed_if.so uid < 1000 Quiet pam_permit.so アカウントが必要です。 パスワードが必要です pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= パスワードが十分です。 pam_unix.so sha512 Shadow nullok try_first_pass use_authtok パスワード pam_deny.so が必要 セッションオプション pam_keyinit.so キャンセル pam_limits.so セッションが必要です。 -セッションオプション pam_systemd.so セッションの pam_succeed_if.so サービス [success=1 デフォルト = 無視] crond use_uid pam_unix.so セッションが必要です。
共有PAM関連ライブラリがあります。:
libpam_misc.so.0 libpam.so.0 pam_access.so pam_console.so pam_deny.so pam_env.so pam_fprintd.so pam_gnome_keyring.so pam_keyinit.so pam_lastlog.so pam_limits.so pam_localuser.so pam_loginuid.so pam_namespace.so pam_nologin.so pam_permit.so pam_pkcs11.so pam_pwquality.so pam_rootok.so pam_securetty.so pam_selinux_permit.so pam_selinux.so pam_sepermit.so pam_succeed_if.so pam_systemd.so pam_timestamp.so pam_unix_acct.so pam_unix_auth.so pam_unix.so pam_xauth.so
上記の共有ライブラリで参照したものです(に従ってldd
)。:
libattr.so.1 libaudit.so.1 libcap.so.2 libcrack.so.2 libcrypt.so.1 libc.so.6 libdbus-1.so.3 libdbus-glib-1.so.2 libdl.so.2 libffi.so.6 libfreebl3.so libgcc_s.so.1 libgio-2.0.so.0 libglib-2.0.so.0 libgmodule-2.0.so.0 libgobject-2.0.so.0 liblzma.so.5 libnsl.so.1 libnspr4.so libnss3.so libnssutil3.so libpcre.so.1 libpcre.so.3 libplc4.so libplds4.so libpthread.so.0 libpwquality.so.1 libresolv.so.2 library.so.1 libselinux.so.1 libsmime3.so libssl3.so libutil.so.1 libz.so.1
答え1
私の場合はCentos 6を使用しており、/var/log/secureで次のことを見つけました。
Mar 13 10:13:02 server sudo(pam_google_authenticator)[24911]: Unrecognized option "user=root"
Mar 13 10:13:02 server sudo: ralph : pam_authenticate: Cannot make/remove an entry for the specified session ; TTY=pts/2 ; PWD=/home/ralph ; USER=root ; COMMAND=/usr/local/bin/become root
最終的に問題が発生するのはGA PAMモジュールであり、PAMはこれをどのように処理するのかわからないため、エラーが発生します。他のPAMモジュールに関連する他の多くの問題が同じ動作を引き起こすと確信しています(Google Authenticatorだけでなく)。どのようなログが何が起こっているのかを理解する唯一の方法かもしれません。
答え2
これは、pam.dファイルに問題があるか、pamアクセスが必要な問題があることを意味できます。
1つのデバッグ技術は、pam_echoステートメントをpamファイル全体に分散させることです。
例えば
auth [default=ignore] pam_echo.so "sshd: calling faillock"
auth requisite pam_faillock.so preauth even_deny_root
auth [default=ignore] pam_echo.so "sshd: faillock did not fail"
auth [default=ignore] pam_echo.so "calling password-auth substack"
auth substack password-auth
auth [default=ignore] pam_echo.so "back from password-auth substack"
auth [default=ignore] pam_echo.so "calling postlogin"
auth include postlogin
auth [default=ignore] pam_echo.so "back from postlogin"
pam_echoを追加するときは注意してください。後続の行を「スキップ」できる行の後に置かないでください。必要に応じてスキップする回数を更新してください。
注意:pamファイルを変更するときは、常にrootとしてログインしてください。変更はすぐに有効になり、エラーがあるとログインしたりsudoを使用できなくなる可能性があります。
答え3
このツールを使用して、私のシステムでこの問題を解決しました。レビュー2が許可されています。確認する私の投稿。