私はこのpam設定を継承して感謝し、pam_accessも追加しました。
auth
pam_succeed_if
具体的にそして線を理解しようとしていますauth
pam_localuser
。
#%PAM-1.0
# This file is auto-generated, but maintained in ansible.
# Changes will be destroyed the next time authconfig is run.
auth required pam_env.so
auth required pam_faildelay.so delay=2000000
# vvvvvv
auth [default=1 ignore=ignore success=ok] pam_succeed_if.so uid >= 200 quiet
auth [default=1 ignore=ignore success=ok] pam_localuser.so
# ^^^^^^
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 200 quiet_success
auth sufficient pam_sss.so forward_pass
auth required pam_deny.so
account required pam_access.so
account required pam_unix.so broken_shadow
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 200 quiet
account [default=bad success=ok user_unknown=ignore] pam_sss.so
account required pam_permit.so
password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok
password sufficient pam_sss.so use_authtok
password required pam_deny.so
session optional pam_keyinit.so revoke
session required pam_limits.so
-session optional pam_systemd.so
# session optional pam_oddjob_mkhomedir.so umask=0077
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
session optional pam_sss.so
[...]
この部分、特にこの部分が何をしているのかについての文書を見つけるのに苦労しましたdefault=1
。次の行をスキップしたことは私の理解ですか?
uid が 200 より大きい場合は OK を渡し、引き続き pam_localuser をスキップして pam_unix を確認します。
uid < 200 の場合は pam_localuser に移動します。
pam_localuserでtrueの場合、pam_unixをスキップします。 (???大丈夫ですか???)
これは過度に複雑に見え、このセクションのポイントが何であるかよくわかりません。
誰かが意図を説明できますか?
答え1
次のように
default
ルールをスキップする正の整数modules/pam_succeed_if/pam_succeed_if.8.xml
Linuxファームプロジェクト:
<para>
Given that the type matches, only loads the othermodule rule if
the UID is over 500. Adjust the number after default to skip
several rules.
</para>
<programlisting>
type [default=1 success=ignore] pam_succeed_if.so quiet uid > 500
type required othermodule.so arguments...
</programlisting>
default=die
他の操作は通常、またはなどのテキストラベルを介して厳密ではない正の整数です。default=ignore
これらのトークン操作はにリストされていますlibpam/pam_tokens.h
。
pam_localuser
pam_unix
おそらくuid < 200は、パスワードハッシュなどを介して認証する必要がないローカルシステムアカウントなので、スキップしました。これはauth
ルールの一部です。通常、これらの役割アカウントにはfalse
シェルセットもありますnologin
。