6.29. pam_selinux-设置默认的安全上下文

pam_selinux.so [打开] [关闭] [恢复] [Comments] [调试] [详细] [select_context] [env_params] [use_current_range]

6.29.1. DESCRIPTION

pam_selinux 是一个 PAM 模块,它为下一个执行的进程设置默认的 SELinux 安全上下文。

当启动新会话时,模块的 open_session 部分将计算并设置用于下一个 execve(2)调用的执行安全性上下文,控制终端的文件安全性上下文以及用于创建新内核的安全性上下文钥匙圈。

会话结束后,模块的 close_session 部分将恢复在模块的 open_session 部分进行更改之前生效的旧安全上下文。

将 pam_selinux 添加到 PAM 堆栈中可能会破坏其他执行应用程序的 PAM 模块的行为。为避免这种情况,应将* pam_selinux.so open 放在 PAM 堆栈中的此类模块之后,并将 pam_selinux.so close 放在它们之前。如果这样的放置不可行,则可以使用 pam_selinux.so restore *来临时还原原始安全上下文。

6.29.2. OPTIONS

  • open

    • 仅执行模块的 open_session 部分。
  • close

    • 仅执行模块的 close_session 部分。
  • restore

    • 在模块的 open_session 部分中,像在上一次调用模块之前一样,暂时还原安全上下文。不带 restore 选项的此模块的另一个调用将再次设置新的安全上下文。
  • nottys

    • 不要设置控制终端的安全上下文。
  • debug

    • 通过 syslog(3)打开调试消息。
  • verbose

    • 设置安全上下文时尝试通知用户。
  • select_context

    • 尝试要求用户提供自定义安全上下文角色。如果 MLS 开启,则还询问灵敏度级别。
  • env_params

    • 尝试从 PAM 环境中获取自定义安全上下文角色。如果 MLS 打开,则还要获取灵敏度级别。此选项和 select_context 选项是互斥的。各个 PAM 环境变量为* SELINUX_ROLE_REQUESTED SELINUX_LEVEL_REQUESTED SELINUX_USE_CURRENT_RANGE *。前两个变量是自我描述的,最后一个变量(如果设置为 1)使 PAM 模块的行为就像在模块的命令行上指定了 use_current_range 一样。
  • use_current_range

    • 对用户上下文使用当前进程的敏感度级别,而不是默认级别。还抑制了向用户询问敏感度级别或从 PAM 环境获得敏感度级别。

6.29.3. 提供的模块类型

仅提供session模块类型。

6.29.4. 返回值

  • PAM_SUCCESS

    • 安全上下文已成功设置。
  • PAM_SESSION_ERR

    • 无法获取或设置有效的上下文。
  • PAM_USER_UNKNOWN

    • 该系统未知用户。
  • PAM_BUF_ERR

    • 内存分配错误。

6.29.5. EXAMPLES

auth     required  pam_unix.so
session  required  pam_permit.so
session  optional  pam_selinux.so

6.29.6. AUTHOR

pam_selinux 由 Dan Walsh<[email protected]>编写。