sudo -k 与 sudo -K 对比

sudo -k 与 sudo -K 对比

我知道手册页中关于 -K 和 -k 是怎么说的:

‑K

‑K(sure kill)选项与 ‑k 类似,不同之处在于它会完全删除用户的缓存凭据,并且不能与命令或其他选项一起使用。此选项不需要密码。并非所有安全策略都支持凭据缓存。

‑k[命令]

单独使用时,sudo 的 ‑k(kill)选项会使用户的缓存凭据无效。下次运行 sudo 时将需要输入密码。此选项不需要密码,添加该选项是为了允许用户从 .logout 文件中撤销 sudo 权限。并非所有安全策略都支持凭据缓存。与可能需要密码的命令或选项结合使用时,‑k 选项将导致 sudo 忽略用户的缓存凭据。因此,sudo 将提示输入密码(如果安全策略需要密码),并且不会更新用户的缓存凭据。

因此,如果不需要结合这些选项使用命令,我是否可以正确地假设 K 总是比 k 更好的选择?

答案1

sudo -K并且sudo -k,无需命令,执行相同的操作:它们使用户的缓存凭据无效。

sudo -k command ...不同之处在于:忽略用户对当前命令的缓存凭据,但不会使其无效。

当您想要运行单个命令而不使用或破坏缓存的凭据时,请-k使用命令。(我实际上不确定您为什么要这样做,但有这个功能。)

如果您想要破坏缓存的凭据,请使用sudo -k或。sudo -K

概括:

sudo -k           # clobbers cached credentials
sudo -K           # clobbers cached credentials
sudo -k command   # ignores cached credentials
sudo -K command   # invalid

更新 :

重新审视这个答案,看起来-k和之间的唯一区别-K在于-k接受命令而不-K接受命令。我不相信有两个单独的选项是有用的,因为-K实际上并没有添加任何-k未提供的功能。手册页中的措辞有细微的差别;-k“使用户的缓存凭据无效”,而-K“完全删除用户的缓存凭据”。我不相信思考这表明其影响凭证的方式存在着真正的差异。

答案2

sudo -K将使所有终端会话中的缓存凭据失效。在锁定 DE 之前运行此功能很有用。

sudo -k只会使当前终端会话的缓存凭据无效。

相关内容