sudo(2)缓存凭证

在 Linux 中,sudo缓存凭证有效时间(即输入密码后无需再次输入密码的时间段)默认是 5 分钟。这个时间可以通过修改 sudo 的配置文件来调整。


1.修改方法

sudo 的缓存凭证时间由 /etc/sudoers 文件中的 timestamp_timeout 参数控制。以下是修改的具体操作:

  1. 以 root 权限编辑 /etc/sudoers 文件
    使用 visudo 命令编辑配置文件,这样可以避免语法错误导致的问题:
    sudo visudo

  2. 找到或添加 timestamp_timeout 设置
    在文件中的 Defaults 部分,添加或修改以下内容:
    Defaults timestamp_timeout=<时间>

    • <时间> 的单位是分钟
    • 如果设置为 0,每次使用 sudo 都需要输入密码。
    • 如果设置为 -1,缓存永不过期(除非手动清除或重启系统),但这不推荐,因为安全性会降低。
    • 例如,将缓存时间改为 5 分钟
      Defaults timestamp_timeout=5
  3. 保存并退出
    编辑完成后,按 Ctrl+O 保存(如果是 nano 编辑器)或 :wq(如果是 vim),然后退出。

  4. 验证修改
    修改完成后,运行一个 sudo 命令(比如 sudo ls),然后在缓存时间内再次运行,观察是否需要输入密码。如果超过设置的时间(如 5 分钟),会再次提示输入密码。

2.注意事项

  • 全局设置:上述方法会影响系统中所有使用 sudo 的用户。
  • 针对特定用户或组:如果只想为特定用户或组修改缓存时间,可以在 sudoers 文件中指定。例如:
    Defaults:username timestamp_timeout=10
    username 替换为目标用户名,这样只对该用户生效,缓存时间改为 10 分钟。
  • 清除缓存:如果你想手动清除当前缓存,可以运行:
    sudo -k
    这会立即使缓存失效,下次使用 sudo 时需要重新输入密码。

3.示例场景

假设你希望缓存时间改为 30 分钟,操作如下:

sudo visudo

在文件中添加:

Defaults timestamp_timeout=30

保存退出后,sudo 的凭证缓存将保持 30 分钟有效。

常见问题

  • 如果设置无效:检查文件语法是否有误,确保使用 visudo 编辑,避免直接修改 /etc/sudoers 文件。
  • 安全性考虑:过长的缓存时间可能增加风险,尤其是多人共用的系统,建议根据实际需求权衡。