sudo(2)缓存凭证
在 Linux 中,sudo
的缓存凭证有效时间(即输入密码后无需再次输入密码的时间段)默认是 5 分钟。这个时间可以通过修改 sudo
的配置文件来调整。
1.修改方法
sudo
的缓存凭证时间由 /etc/sudoers
文件中的 timestamp_timeout
参数控制。以下是修改的具体操作:
以 root 权限编辑
/etc/sudoers
文件
使用visudo
命令编辑配置文件,这样可以避免语法错误导致的问题:
sudo visudo找到或添加
timestamp_timeout
设置
在文件中的Defaults
部分,添加或修改以下内容:
Defaults timestamp_timeout=<时间><时间>
的单位是分钟。- 如果设置为
0
,每次使用sudo
都需要输入密码。 - 如果设置为
-1
,缓存永不过期(除非手动清除或重启系统),但这不推荐,因为安全性会降低。 - 例如,将缓存时间改为 5 分钟:
Defaults timestamp_timeout=5
保存并退出
编辑完成后,按Ctrl+O
保存(如果是 nano 编辑器)或:wq
(如果是 vim),然后退出。验证修改
修改完成后,运行一个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
文件。 - 安全性考虑:过长的缓存时间可能增加风险,尤其是多人共用的系统,建议根据实际需求权衡。