pam如何根据用户是通过ssh,本地,串口控制台等login来决定使用/etc/pam.d中的哪些文件?
PAM“服务”名称(“sshd”,“sudo”等)被编译到应用程序中。 这是什么决定哪个文件将被加载。 之后,@include行按照freiheit的post中的描述进行处理。
它可能被硬编码到程序中,但是每个服务在/etc/pam.d中都有自己的文件,通常以实际进程名称命名。 本地和串行控制台都通过getty传递,实际login到“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”的东西,这是一个基于模块的版本。