Answers:
sudo -k
将杀死超时时间戳。您甚至可以在其后放置命令,例如sudo -k test_my_privileges.sh
来自man sudo
:
-K -K(确保终止)选项类似于-k,不同之处在于它完全删除了用户的时间戳,并且不能与命令或其他选项一起使用。此选项不需要密码。
-k单独使用时,通过将-k(kill)选项设置为Epoch来使用户的时间戳无效,从而使sudo无效。下次运行sudo时,将需要密码。此选项不需要密码,并且已添加该选项以允许用户撤消.logout文件中的sudo权限。
您也可以永久更改。来自man sudoers
:
timestamp_timeout
sudo可能经过的分钟数将再次要求输入密码。如果微小粒度不足(例如2.5),则超时可能包括小数部分。默认值为5。将其设置为0总是提示输入密码。如果设置为小于0的值,则用户的时间戳将永不过期。这可用于允许用户分别通过sudo -v和sudo -k创建或删除自己的时间戳。
sudo -k command
将不会删除凭据。它只是忽略当前凭据,不存储它们。
sudoers
文件sudo visudo
。然后,将行添加到文件Defaults timestamp_timeout = 0
中其他列表Defaults
的末尾。再次将线路退出,以恢复为“正常”超时。
Shawn的答案很好,但是在这种情况下还有一个附加的配置选项可能会有用。
来自man sudoers
:
tty_tickets
如果设置,则用户必须基于每个认证。启用此标志后,sudo将在用户的时间戳目录中使用一个以用户登录的tty命名的文件。如果禁用,则使用目录的时间戳。
默认情况下,此标志是打开的。
来自man sudo
:
当在sudoers中启用tty_tickets选项时,时间戳具有每个tty的粒度,但仍可能会超出用户的会话。在使用devpts文件系统的Linux系统,带有devices文件系统的Solaris系统以及利用devfs文件系统的其他系统上,这些系统会在创建设备时单调增加其inode数量(例如Mac OS X),因此sudo可以确定基于tty的时间戳文件何时过时并将其忽略。 管理员不应该依赖此功能,因为它不是普遍可用的。
我认为它相对较新。如果您的系统支持,则先注销然后再登录,sudo将再次要求您输入密码。(sudo -K
我的shell注销脚本中也有。)
/etc/sudoers.d/
目录中。我输入了该行#includedir /etc/sudoers.d
,/etc/sudoers
尽管该行已被注释禁用,但看起来好像#
之前includedir
的注释未读!