如何让 sudo 在执行完一条命令后自动忘记密码?

如何让 sudo 在执行完一条命令后自动忘记密码?

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

sudo vim ~/thefile

我可以输入

sudo -K

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

有没有办法做到这一点?

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

答案1

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

function sudok () { sudo "$@"; sudo -K; }

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

答案2

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

sudo -k vim ~/thefile

据记录完全忽略您的缓存文件:

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

答案3

man sudoers;timestamp_timeout那里描述了一个设置。将其设置为0始终sudo提示输入密码。

相关内容