gpt4 book ai didi

macos - 在 BASH 脚本中扩展 SUDO 时间戳

转载 作者:行者123 更新时间:2023-12-05 07:52:25 25 4
gpt4 key购买 nike

有一个 BASH 脚本可能需要 5 分钟以上才能运行命令列表(大多数是 sudo)...有什么替代方案?

有人说...

使用sudo -v

虽然在阅读了 Apple 的 sudo(8) Man Page 之后,这似乎是一个不错的选择。 , 据说...

If given the -v (validate) option, sudo will update the user's time stamp, prompting for the user's password if necessary. This extends the sudo timeout for another 5 minutes (or whatever the timeout is set to in sudoers) but does not run a command.

我关心的是必要时提示用户输入密码。 “如有必要”是什么意思?

如果我在 bash 脚本中有 sudo -v,比方说,自上次使用 sudo 以来大约执行了 4 分钟(时间戳还剩 1 分钟)。因此,再给我们 5 分钟的时间戳 - 对吗?

至于另一个选项,有人提到使用循环命令来更新时间戳。

while true; do sudo -n true; sleep 60; kill -0 "$$" || exit; done 2>/dev/null &

上面的代码可以吗?

最佳答案

我可能会迟到回答我自己的问题,但是我确实找到了解决方案。

您的密码替换userpassword:

 echo "userpassword" | sudo -S -v

使用变量:

echo "$var" | sudo -S -v  

如果超过 5 分钟,请使用while 循环:

while true; do sudo -v; sleep 300; kill -0 "$$" || exit; done 2>/dev/null &

关于macos - 在 BASH 脚本中扩展 SUDO 时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33664009/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com