Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

10.3. PAM 和管理凭证缓存

Red Hat Enterprise Linux 中有多个图形管理工具,如 GNOME 的 control-center,用户可以使用 pam_timestamp.so 模块为用户提供最多 5 分钟的权限。务必要了解此机制的工作方式,因为在 pam_timestamp.so 过程中离开终端的用户使机器处于打开状态,以使机器可以被具有物理访问权限的任何人进行操作。
在 PAM 时间戳方案中,图形管理应用在启动时提示用户输入 root 密码。当用户通过身份验证后,pam_timestamp.so 模块会创建一个时间戳文件。默认情况下,这在 /var/run/sudo/ 目录中创建。如果时间戳文件已存在,图形管理程序不会提示输入密码。相反,pam_timestamp.so 模块会重新设置时间戳文件,从而保留一个额外的五分钟,为用户保留一个未限制的管理访问权限。
您可以通过检查 /var/run/sudo/用户 目录中的文件来验证时间戳文件的实际状态。对于桌面,相关文件为 unknown:root。如果存在,其时间戳少于五分钟,则凭证有效。
时间戳文件的存在通过身份验证图标表示,该图标出现在面板的通知区域中。

图 10.1. 身份验证图标

身份验证图标

10.3.1. Common pam_timestamp 指令

pam_timestamp.so 模块提供这两个接口:
  • auth
  • 会话
另外,以下选项可用于 pam_timestamp.so
  • timestamp_timeout: 指定时间戳文件的有效性周期(以秒为单位),默认为 300 (five minutes)。
  • timestampdir: 指定在哪些目录中存储时间戳文件,默认为 /var/run/sudo/
  • 您还可以使用 verbosedebug 获取更详细的消息。
例如:
auth       sufficient    pam_timestamp.so timestamp_timeout=600
session    optional     pam_timestamp.so
有关如何使用和配置 PAM 指令的详情,请参考 第 10.2 节 “关于 PAM 配置文件”。另请参阅 pam_timestamp (8) 手册页和 pam.conf (5) 手册页。

10.3.2. 删除时间戳文件

在放弃激活 PAM 时间戳的控制台之前,建议销毁时间戳文件。要在图形环境中执行此操作,请单击面板上的验证图标。这将导致显示对话框。点 Forget Authorization 按钮销毁活跃的时间戳文件。

图 10.2. 取消验证对话框

取消验证对话框
PAM 时间戳文件有一些重要特征:
  • 如果使用 ssh 远程登录到系统,请使用 /sbin/pam_timestamp_check -k root 命令销毁时间戳文件。
  • 从启动特权应用程序的同一终端窗口中,运行 /sbin/pam_timestamp_check -k root 命令。
  • 最初调用 pam_timestamp.so 模块的登录用户必须是运行 /sbin/pam_timestamp_check -k 命令的用户。不要以 root 身份运行此命令。
  • 在桌面上终止凭证,而无需对图标使用 Forget Authorization 操作,可以使用 /sbin/pam_timestamp_check 命令完成。
    /sbin/pam_timestamp_check -k root </dev/null >/dev/null 2>/dev/null
    任何其他方法仅从运行命令的 PTY 中删除凭据。
有关使用 pam_timestamp_check 销毁时间戳文件的更多信息,请参阅 pam_timestamp_check 手册页。