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


37

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

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

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

虽然,考虑一下,可能只需要关闭正在运行的GUI,但是我只是检查了Alt+ F2使gksu处于活动状态以进行后续调用。

Answers:


37

不知道您是否要杀死sudo超时,以便它不超时或立即超时,但是如果您想删除剩余的时间戳,可以使用 sudo -k

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


哎呀..我对细节有些慢:我只是在我的问题上增加了一些..关于“ -k” ...是的,我指的是一次性情况,尽管现在确实带来了解决了整个系统的“一次性”问题。...感谢(+1),用于这是最适合我的oringinaL(缺乏细节)问题asnwer ..
Peter.O

1
我不太了解(在-k的情况下使用-k)有什么-K实际区别-k,但是-k有双重用途:1 .单独使用(会使时间戳无效)... 2.与命令一起使用时,提示您输入密码,无论先前的sudo超时是否已过期.....顺便说一句:sudo -k在Alt + F2中起作用,以终止先前的sudo / gksu调用的时间戳。
Peter.O 2010年

是的,我不知道什么时候可以使用另一个。
wajiw

除了“杀死所有现有时间戳”问题之外。...在不更改基础sudoers设置的情况下,我可以看到运行“保证的一次性sudo ”的唯一方法是sudo -k; sudo -k appname....因为尽管sudo -k appname强制用户执行以下操作:输入密码,它会使先前存在的时间戳保持不变...(我将其称为“烦恼”),也许“杀死”所有现有时间戳的最简单方法是简单地避免该问题并按Ctrl + Alt + L锁定屏幕。:)
Peter.O 2010年

哈哈哈,如果您有能力,我会选择该选项
wajiw,2010年

8

就您的观点之一:

但是,如果某个进程当前正在该会话中运行,则无法运行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...
....

1
Stefano:谢谢……太好了……Linux一直对我说:“是的,我当然可以做到” + Z,但一半还不够!)...现在我已经意识到了一种“真实”的情况,即它不仅仅是屏幕上的文本,我敢肯定我永远不会忘记它...必须走..我要做一些Cntrl + Z-ing操作
Peter.O 2010年

2

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

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

作为根...

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.