问题描述
当我刚刚运行sudo
,并且不希望它在time-out的正常持续时间内保持活动状态时,如何取消剩余的活动time-out?
sudo -k
会将其杀死当前的终端会话,但如果某个进程当前正在该会话中运行,因此无法运行sudo -k
,是否有办法从其他终端会话中取消它?
有没有办法取消所有当前应用的sudo
时间(对于所有终端会话,以及所有gksudo正在运行的应用程序等?
虽然,考虑到它,可能只需要关闭正在运行的GUI,但我只是检查了Alt
+ F2
使gksu保持活动以进行后续调用。
最佳解决办法
不确定你是否要杀死一个sudo超时因此它不会超时或因此立即超时,但如果你想删除剩余的时间戳你可以使用sudo -k
否则,如果您尝试取消超时,以便sudo不会超时,我认为在当前会话中不可能这样做。我知道的唯一方法是更改sudoers
文件中的timestamp_timeout
并重新启动会话。
次佳解决办法
只是在你的一点上:
but if a process is currently running in that session and so can’t run sudo -k
这是特定于命令行的,如果您想在其他进程运行时执行任何操作,可以按Ctrl
+ Z
暂停该过程;然后再次访问当前终端,做任何你喜欢的事情。完成后,您可以键入jobs
以获取进程列表,旁边有一个数字。键入fg 1
(例如 – 如果只有一个作业,则只需fg
)重新启动进程,将其提升到前台。同样,bg
做同样的事情,但让进程在后台运行。
示例会话
$ sudo apt-get install hello
<CTRL+Z>
[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中),每个user-name一个目录,几个文件用作time-stamp,一个文件用于每个终端。删除这些文件,您的系统再次安全。请记住,这些文件只对root可见(否则入侵者可能会读取time-stamp并将clock-time设置回它们仍然有效的位置 – 向任何人授予root-ls是危险的)。因此在我的/etc /pm /sleep /中也可能是我运行的屏幕保护程序:
rm -f /var/db/sudo/*/*
作为当然的根…