linux中sudo超时时间控制密码缓存有效期,默认值因发行版而异:ubuntu等桌面版为5分钟,centos/rhel/debian服务器版为15分钟;可通过/etc/sudoers或/etc/sudoers.d/配置timestamp_timeout参数修改,支持小数(如0.5表示30秒),特殊值0表示每次需输密、-1表示永不过期。

Linux 中 sudo 的超时时间控制的是“密码缓存有效期”,不是命令执行时限,也不是登录会话生命周期。它决定你输入一次密码后,后续多少分钟内再执行 sudo 命令无需重复验证。
默认超时行为因发行版而异
不同系统默认值不同:
- Ubuntu 及多数桌面版默认为 5 分钟
- CentOS/RHEL/Debian 服务器版通常为 15 分钟
- 该值仅影响同一终端会话中连续 sudo 操作的密码提示频率
修改全局超时时间(推荐方式)
使用 sudo visudo 编辑 /etc/sudoers,找到类似这行:
在其后追加 , timestamp_timeout=N,例如:
其中 N 是分钟数(支持小数如 0.5 表示 30 秒),生效后所有用户遵守此规则。
为特定用户或组单独设置
更安全的做法是把配置放在 /etc/sudoers.d/ 下:
- 创建文件:
sudo visudo -f /etc/sudoers.d/mytimeout - 写入:
Defaults:username timestamp_timeout=10(仅限某用户) - 或:
%admin timestamp_timeout=7(仅限 admin 组)
这样避免直接修改主 sudoers 文件,也便于维护和回滚。
特殊取值含义要记清
-
timestamp_timeout=0:每次 sudo 都必须输密码 -
timestamp_timeout=-1:密码永不过期(退出 shell 或重启前一直有效) -
timestamp_timeout=1:仅缓存 1 分钟,适合高敏环境
注意:timeout=60(不带 timestamp_ 前缀)是错误写法,会被忽略;正确参数名始终是 timestamp_timeout。











