Bash 跳过密码提示

Bash 跳过密码提示

我有以下小脚本:

#!/bin/bash
cd ~

thunderbird &
firefox &

sudo apt-get update
sudo apt-get upgrade

在过去的两年里它一直有效,但有几天它跳过了密码提示。输出(除了启动脚本外,我没有采取任何行动):

me@UBUNTU:~$ sh goodmorningscript.sh 
[sudo] password for me: 
[sudo] password for me: 
me@UBUNTU:~$

它只是运行,没有停下来等待密码提示。我不想要解决方案无需输入密码

什么原因导致我的 Ubuntu 跳过提示?我该如何解决?

注意:如果我手动输入sudo命令,提示将按预期工作。


GNU bash,版本 4.4.19(1)-发布(x86_64-pc-linux-gnu)

Ubuntu 18.04.1 LTS


我找到了一个可行的解决方案,对我而言很有效。如果该sudo命令位于带有 的命令之前&,则密码提示将按预期工作:

#!/bin/bash
cd ~

sudo apt-get update
sudo apt-get upgrade

thunderbird &
firefox &

我仍然不知道为什么,但也许这会有所帮助。

答案1

我在使用终端时遇到了同样的问题。只需重新启动终端即可解决问题。

答案2

您很可能sudo在执行脚本之前使用了(与其他命令一起)。

sudo效果会持续一段时间(默认 15 分钟)。请尝试等待几分钟。或者关闭并重新打开终端,然后重试。

如果同样的行为持续存在,则需要更多信息。运行sudo -l并在此处粘贴输出

相关内容