Azure Batch 错误:“sudo:不存在 tty 且未指定 askpass 程序”
Posted
技术标签:
【中文标题】Azure Batch 错误:“sudo:不存在 tty 且未指定 askpass 程序”【英文标题】:Azure Batch error : "sudo: no tty present and no askpass program specified" 【发布时间】:2021-11-02 21:54:18 【问题描述】:我是 Azure Batch 的新手,遇到了一个似乎无法解决的错误。 我按照本教程https://github.com/Azure-Samples/azure-batch-samples/tree/master/javascript 测试 Azure Batch,但服务没有运行,当我查看“准备任务”菜单时出现此错误:“sudo: no tty present and no askpass program specified”
执行sample.js文件的命令“sudo sh startup_prereq.sh > startup.log”时出现问题。 根据网上不同的cmet,需要提供用户名和密码才能通过,但我不知道怎么做。
你知道我该如何解决这个问题吗?
谢谢
【问题讨论】:
【参考方案1】:问题是由于执行了一个尝试请求密码的sudo
命令,但sudo
无权访问tty
来提示用户输入密码。
由于找不到tty
,sudo
回退到askpass
方法但找不到配置的askpass
命令,因此sudo
命令失败。
要解决此问题,您需要能够为该特定用户运行sudo
,而无需密码。
无密码要求在/etc/sudoers
文件中配置。
要对其进行配置,请运行以下任一命令:
sudo nano /etc/sudoers
或
sudo visudo
注意:这将使用您的默认编辑器打开/etc/sudoers
文件。
接下来,在文件底部添加以下行:
# Allow members to run all commands without a password
my_user ALL=(ALL) NOPASSWD:ALL
注意:将my_user
替换为您的实际用户
如果您希望用户运行特定命令,您可以指定它们
# Allow members to run specific commands without a password
my_user ALL=(ALL) NOPASSWD:/bin/myCommand
或
# Allow members to run specific commands without a password
my_user ALL=(ALL) NOPASSWD: /bin/myCommand, /bin/myCommand, /bin/myCommand
保存更改并退出文件。
更多信息,你可以参考这个link。
【讨论】:
感谢您的建议。我找到了解决此问题的另一种方法,并且软件包的安装进展顺利,但我面临另一个问题。我在上面发布了这个【参考方案2】:我设法通过在 sample.js 文件中添加这个来解决问题:
userIdentity:
autoUser:
elevationLevel: "admin",
scope: "pool"
同样的序列,我在 createTasks 部分添加了它:
我已经成功安装了这个文件 workitems/processcsvjob/job-1/installprereq/stdout.txt 中显示的软件包,它没有指向任何错误。
【讨论】:
以上是关于Azure Batch 错误:“sudo:不存在 tty 且未指定 askpass 程序”的主要内容,如果未能解决你的问题,请参考以下文章
Azure Batch 和在 Azure 存储中创建容器文件夹
连接到代理后面的 Azure Batch - 操作返回了无效的状态代码“禁止”
Azure Functions + Azure Batch实现MP3音频转码方案
在 Azure Batch 中使用托管标识在批处理池中使用 Python 对 Key Vault 进行身份验证
尝试执行 sudo 命令时给出“sudo:不存在 tty 且未指定 askpass 程序”的 shell 脚本 [重复]