某些应用程序(例如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会话?
嗯,为什么不为此目的使用screen?与ssh连接,启动screen,从screen启动command和de-attach。然后,当您准备检查它的[[procedure是否已完成,然后重新连接。但是最好将电子邮件通知发送到特殊的email地址,您的电话会通知您job已完成(我希望您拥有或多或少的现代手机)。 https://linux.die.net/man/1/screen
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中得到验证,直到关闭为止。