私はユーザー名を一致させるためにservice
このモジュールを使用しているLinuxシステムを持っています。pam_succeed_if.so
たとえば、
auth required pam_succeed_if.so user = service
ただし、これはユーザー名と一致しませんservice
。これは許可されているフィールドであるためですpam_succeed_if.so
。マニュアルページで(強調表示用に編集):
利用可能なフィールドは、user、uid、gid、shell、home、ruser、rhost、tty、および提供する
フィールド名と一致する値をエスケープする方法は?
追加のトラブルシューティング:
debug
オプションがオンになり、pam_succeed_if.so
ユーザー名が次のservice
ように変換されますlogin
。
login: pam_succeed_if(login:auth): 'user' resolves to 'login'
これはログインに使用されるPAM設定です/etc/pam.d/login
。
答え1
pam_succeed_if.so
値が存在する場合は、渡された値をuser
値に変換します。field
たとえば、ユーザーを使用すると、次のようになりますshell
。
login: pam_succeed_if(login:auth): 'user' resolves to '/bin/bash'
私はこれが明らかに人気のない決定を下すのをどのように防ぐことができるかわかりません。しかし、ほとんどすべての人に適用される解決策があります。
実際の値ではなく解析された値を確認してください。
はい
service
PAM構成でユーザーを一致させるには、次のようにしますlogin
。
auth required pam_succeed_if.so user = login
service
PAM構成でユーザーを一致させるには、次のようにしますsshd
。
auth required pam_succeed_if.so user = sshd
shell
ユーザーを一致させるように構成されたシェルは次のとおりです/bin/bash
。
auth required pam_succeed_if.so user = /bin/bash