默认超时为15分钟(Ubuntu/Debian/Arch)或5分钟(CentOS/RHEL),通过sudo visudo修改Defaults timestamp_timeout值可调整,如设为0需每次验证,-1则永不过期但存在安全风险。

Linux 中 sudo 的超时时间,决定了你输入一次密码后,多久内再次执行 sudo 命令无需重复验证。这个机制不是“固定不变”的,而是可配置的,核心在于 时间戳缓存(timestamp)——每次成功认证后,系统会在 /var/db/sudo(macOS)或 /var/lib/sudo(多数 Linux)下记录一个时间戳文件,后续 sudo 调用会检查它是否仍在有效期内。
默认超时行为是怎样的?
不同发行版默认值略有差异,但常见情况如下:
- Ubuntu/Debian 系列:默认 15 分钟
- CentOS/RHEL 系列:默认 5 分钟
- Arch Linux:默认也是 15 分钟
注意:这个“超时”只针对同一用户在同一终端会话(或同一 tty)中的 sudo 操作。换一个终端、重启 shell、或执行 sudo -k 都会立即清空时间戳,下次 sudo 就必须重输密码。
如何修改超时时间?
通过编辑 /etc/sudoers 文件实现,**必须使用 sudo visudo 打开**(避免语法错误导致 sudo 失效):
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
- 设为 30 分钟:
Defaults timestamp_timeout=30 - 每次都要输密码:
Defaults timestamp_timeout=0 - 永久记住(直到登出或手动清除):
Defaults timestamp_timeout=-1
该设置对所有用户生效。如只想改某个用户,可写成:Defaults:username timestamp_timeout=20。
临时延长当前会话的有效期
不想改全局配置,又想当前终端多撑一会儿?运行:
-
sudo -v:刷新时间戳,重置倒计时(比如从剩2分钟变成满15分钟) -
sudo -k:立刻作废时间戳,强制下次 sudo 重新输密码 -
sudo -l:查看当前用户有哪些 sudo 权限,同时也会触发时间戳刷新
安全提醒:别盲目设为 -1
虽然 timestamp_timeout=-1 最省事,但它意味着只要你不登出、不关机、不执行 sudo -k,任何人在你离开座位后都能在你的终端里随意执行 root 命令。生产环境或共享机器上强烈建议保留合理超时(如 5–15 分钟),兼顾便利与基本防护。

















