Pam

如何讓 pam_succeed_if.so 辨識 service 使用者?

  • June 21, 2015

我有一個 Linux 系統,使用者名為service. 我正在使用該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 和service

如何轉義匹配欄位名稱的值?

進一步的故障排除:

我打開了debug選項pam_succeed_if.so,它將使用者名轉換servicelogin

login: pam_succeed_if(login:auth): 'user' resolves to 'login'

而這恰好是用於登錄的 PAM 配置,/etc/pam.d/login.

pam_succeed_if.so如果該值存在,則將傳入user的值轉換為該值。field例如,使用使用者shell

login: pam_succeed_if(login:auth): 'user' resolves to '/bin/bash'

我不知道如何阻止它做出這種明顯不受歡迎的決心。但是有一種解決方法幾乎適用於所有人。

只需檢查解析值,而不是實際值。

例子

要匹配PAM 配置中的service使用者:login

auth      required      pam_succeed_if.so user = login

要匹配PAM 配置中的service使用者:sshd

auth      required      pam_succeed_if.so user = sshd

匹配shell使用者,其配置的外殼是/bin/bash

auth      required      pam_succeed_if.so user = /bin/bash

引用自:https://unix.stackexchange.com/questions/211066