如何让 sudo 在一个命令后自动忘记密码?

cal*_*ula 6 bash sudo

我的问题如下:我想编辑一个只能由 root 读取的文件。这就是为什么我使用

sudo vim ~/thefile
Run Code Online (Sandbox Code Playgroud)

我可以打字

sudo -K
Run Code Online (Sandbox Code Playgroud)

退出vim后,但我希望有一个选项或某些东西可以让sudo自动忘记密码。我当然想过编辑 sudoers 文件并将超时设置为 0,但我一般不想更改设置。我在联机帮助页中也没有找到任何内容...

有没有办法做到这一点?

如果有趣:我正在使用 Ubuntu 12.04 和 bash。

Mar*_*ick 5

sudo 没有选项可以完全满足您的要求,但是您可以创建一个 shell 函数来创建一个新的 command sudok,它将运行 sudo 命令,然后让 sudo 删除其缓存的凭据。

function sudok () { sudo "$@"; sudo -K; }
Run Code Online (Sandbox Code Playgroud)

将该行添加到您的~/.bashrc~/.bash_profile使其永久化。


jth*_*ill 5

我很确定你只是想要sudo一个小k选项,

sudo -k vim ~/thefile
Run Code Online (Sandbox Code Playgroud)

它被记录为完全忽略您的缓存文件:

当与可能需要密码的命令或选项结合使用时,此选项将导致 sudo 忽略用户的缓存凭据。因此,sudo 将提示输入密码(如果安全策略需要密码)并且不会更新用户的缓存凭据。