我们都知道在 Ubuntu 中 sudo 密码是自动保存 15 分钟然后过期。但我想让它快速过期。我的意思是我不想更改任何设置,而且无论何时我想要,我的系统都应该在 15 分钟内释放密码而不存储。我的意思是它应该只存储 3 分钟或 4 分钟。
我怎样才能做到这一点 ?
答案1
编辑 sudoers 文件sudo visudo
并在现有默认值后添加以下行:
Defaults timestamp_timeout=3
注意:visudo
不意思是它必须用 vi/vim/etc 来编辑它,但是如果你发现你的 $EDITOR 值是 sqwiffed-up 并且你更喜欢 nano,你可以运行sudo EDITOR=nano visudo
来强制 nano 作为你的编辑器。
来自的诀窍建议重复, ( sudo -k
) 适用于立即进行权限转储。
答案2
您可以使用以下命令取消剩余的 sudo 超时
sudo -k
正如解释的那样这里
但如果你想将默认值从 15 分钟改为,你可以这样做
sudo visudo
这将打开一个编辑器并将其指向 sudoers 文件 - Ubuntu 默认使用 nano,其他系统使用 Vi。您现在是一个超级用户,正在编辑系统中最重要的文件之一。不用担心!
(Vi 的特定说明以 (vi!) 标注。如果您使用 nano,请忽略这些)
使用箭头键移动到默认值行的末尾。
(vi!)按 A(大写“a”)键移动到当前行末尾并进入编辑模式(附加到该行最后一个字符后)。
现在输入
,timestamp_timeout=X
其中 X 是超时时间(以分钟为单位)。如果指定 0,系统将始终询问您的密码。如果指定负值,则超时时间将永不过期。例如
Defaults env_reset,timestamp_timeout=5
(vi!) 按 Esc 返回命令模式。现在,如果您对编辑感到满意,请输入 :w 写入文件并输入 :q 退出 vi。如果您犯了错误,也许最简单的方法是从头开始重做,退出而不保存(按 Esc 进入命令模式),然后输入 :q!。
按 CTRL + X,然后按 Y,然后保存文件并退出 nano。
您可能需要阅读 sudoers 和 vi 手册页以获取更多信息。
man sudoers
man vi
其中大部分直接来自RootSudo 超时在里面Ubuntu 官方文档
答案3
我想我已经找到了,使用at
命令。
我是说
sudo apt-get install <application> & echo "sudo -k" | at now + 2 min
答案4
您可以使用类似以下 bash 函数(我还没有对此进行很好的测试):
function tmpsudo {
sudo ${*:2}
(sleep $(($1 * 60)) && sudo -k) &
}
你可以像这样使用它来设置 2 分钟的超时时间:
tmpsudo 2 command
这真的很混乱,并且没有计时器重置,但这是一个选择。