每次用特定时间终止 sudo

每次用特定时间终止 sudo

我们都知道在 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

这真的很混乱,并且没有计时器重置,但这是一个选择。

相关内容