pam 如何根据用户是通过 ssh、本地、串行控制台等方式登录来决定使用 /etc/pam.d 中的哪些文件?
答案1
PAM“服务”名称(“sshd”、“sudo”等)被编译到应用程序中。这决定了哪个文件将被初始加载。之后,@include 行将按照 freiheit 的帖子中所述进行处理。
答案2
它可能被硬编码到程序中,但每个服务在 /etc/pam.d 中都有自己的文件,通常以实际进程名称命名。本地和串行控制台都通过 getty 工作,它将实际登录传递给“login”,因此您需要查看 /etc/pam.d/login。SSH 实际上是“sshd”,因此它位于 /etc/pam.d/sshd 中
在大多数现代发行版中,这些文件大多包含“@include common-password”或“auth include system-auth”等行,因此对于这两个文件,您需要查看 /etc/pam.d/common-password 或 /etc/pam.d/system-auth。稍旧的发行版(例如 RHEL3)使用“auth required pam_stack.so service=system-auth”之类的内容,这是同一内容的基于模块的版本。