pam_env.so 到底做什么?

pam_env.so 到底做什么?

有以下行:

auth        required      pam_env.so

文档说:

第一个模块运行,pam_env,可以选择设置或清除 中指定的环境变量/etc/security/pam_env.conf。该模块是必需的 - 它必须成功运行才能继续进行身份验证。

实用 UNIX 和 Internet 安全,第三版 作者:Simson Garfinkel、Gene Spafford、Alan Schwartz / 可插入身份验证模块 (PAM)

伟大的! “运行成功”到底意味着什么?我知道它加载变量/etc/security/pam_env.conf (顺便说一下,在 CentOS 和 Ubuntu 中,所有行都被注释掉了)。请您解释一下这到底是什么意思?

这个模块怎么会运行不成功呢?或者只是加载变量,这与身份验证有什么关系?

我读过pam.conf联机帮助页:

必需的

    这种 PAM 的失败最终会导致 PAM-API 返回失败,但只有在剩余的堆叠的模块(为此服务和 类型)已被调用。

也许,我错过了一些东西,但它没有告诉我关于这个话题的任何事情。

总而言之,为什么类型是 auth,而不是 session?

答案1

手册pam_env页说:

RETURN VALUES
   PAM_ABORT
       Not all relevant data or options could be gotten.

   PAM_BUF_ERR
       Memory buffer error.

   PAM_IGNORE
       No pam_env.conf and environment file was found.

   PAM_SUCCESS
       Environment variables were set.

此外,如果您的系统已严重损坏,pam_env.so 本身可能无法运行(例如文件系统损坏,或 32 位内核上的 64 位二进制文​​件),并且将返回错误值。

它位于堆栈中的原因auth是后续 PAM 模块可能依赖于已设置的内容(这就是它的原因required)。

相关内容