如何取消当前应用的剩余sudo超时?

当我刚刚运行sudo ,并且不希望它在超时的正常持续时间内保持活动状态时,如何取消剩余的活动超时?

sudo -k为当前终端会话杀死它,但是如果进程当前正在该会话中运行,因此无法运行sudo -k ,是否有办法从另一个终端会话中取消它?

有没有办法取消所有当前应用的sudo时间(对于所有终端会话,以及所有gksudo正在运行的应用程序等?

虽然,考虑到它,可能只需要关闭正在运行的GUI,但我只是检查了Alt + F2使gksu保持活动以进行后续调用。

不确定你是否要杀死sudo超时因此它不会超时或因此立即超时,但如果你想删除剩余的时间戳你可以使用sudo -k

否则,如果您尝试取消超时,以便sudo不会超时,我认为在当前会话中不可能这样做。 我知道的唯一方法是更改sudoers文件中的timestamp_timeout并重新启动会话。

只是在你的一点上:

但是如果进程当前正在该会话中运行,那么就无法运行sudo -k

这是特定于命令行的,如果您想在其他进程运行时执行任何操作,可以按Ctrl + Z暂停该过程; 然后再次访问当前终端,做任何你喜欢的事情。 完成后,您可以键入jobs以获取进程列表,旁边有一个数字。 键入fg 1 (例如 – 如果只有一个作业,只需fg )重新启动进程,将其提升到前台。 同样, bg做同样的事情,但让进程在后台运行。

示例会话

 $ sudo apt-get install hello  [1]+ Stopped sudo apt-get install hello $ sudo -k $ jobs [1]+ Stopped sudo apt-get install hello $ fg 1 Loading database... .... 

我找到了解决方案。 因为我的搜索没有显示任何相似内容,这是一个经常出现的问题:sudo存储在文件系统的某个地方(例如在/ var / run / sudo中),每个用户名一个目录,几个文件用作时间戳,每个终端一个文件。 删除这些文件,您的系统再次安全。 请记住,这些文件只对root可见(否则入侵者可能会读取时间戳并将时钟时间设置回它们仍然有效的位置 – 向任何人授予root-ls是危险的)。 因此在我的/ etc / pm / sleep /中也可能是我运行的屏幕保护程序:

 rm -f /var/db/sudo/*/* 

作为当然的根…