是否可以在当前shell中禁用sudo超时?

问题描述 投票:0回答:2

某些应用程序(例如yay)使用sudo以root身份运行某些命令。这意味着我必须坐在终端机前面,等待sudo提示输入密码,然后手动输入以继续。我可以通过首先以sudo身份运行命令来避免这种情况(例如sudo -v)。这样,yay可以以sudo身份运行命令,而不会提示我输入密码。

但是有些时候,应用程序安装时间太长,以致sudo会话超时(15分钟),并且sudo再次提示我输入密码。由于发生这种情况时我通常会离开计算机或切换到其他工作区,因此sudo密码提示通常会超时,这非常烦人。

我不想完全禁用sudo超时,因为它在那里是有原因的。但是,当我期望使用sudo的命令将花费long的时间时,我希望仅对当前shell禁用sudo超时。

类似:

sudo --disable-timeout

现在,我应该能够在当前shell中运行sudo,而无需重新输入密码,或者直到运行sudo -k

这是可能的,还是我必须编写一个包装脚本来定期为我刷新sudo会话?

linux sudo
2个回答
0
投票

嗯,为什么不为此目的使用screen?与ssh连接,启动screen,从screen启动commandde-attach。然后,当您准备检查它的[[procedure是否已完成,然后重新连接。但是最好将电子邮件通知发送到特殊的email地址,您的电话会通知您job已完成(我希望您拥有或多或少的现代手机)。 https://linux.die.net/man/1/screen


0
投票
这里是一种可能的解决方法。编写这样的脚本(例如sudo-stay-validated.sh):

#!/bin/bash while true; do sudo -v sleep 60 done

在应使sudo保持有效的终端上运行脚本:

$ bash sudo-stay-validated.sh

按Ctrl + Z将其放在后台,然后记得运行$ bg在后台恢复脚本。

这将使sudo在当前shell中得到验证,直到关闭为止。

© www.soinside.com 2019 - 2024. All rights reserved.