避免Jenkins错误的最佳实践:sudo: no tty present and no askpass program specified

29

当我从Jenkins运行任何sudo命令时,我会收到以下错误:sudo: no tty present and no askpass program specified

我知道我可以通过在/etc/sudoers文件中添加NOPASSWD条目来解决这个问题,这将允许用户jenkins在不需要密码的情况下运行命令。我可以添加如下条目:

%jenkins ALL=(ALL)NOPASSWD:/home/me/dir/script.sh

...但这会导致以下问题:https://stackoverflow.com/questions/17414330/how-to-avoid-specifying-full-path-in-sudoers-file

我可以像这样添加一个条目:

%jenkins ALL=NOPASSWD: ALL

...但这允许用户jenkins避免所有命令的密码提示,这似乎有些不安全。我只是好奇在这里我的选择是什么,是否有任何最佳实践我应该考虑。


我无法确定您使用此命令更改的是哪个文件?%jenkins ALL =(ALL)NOPASSWD:/ home / vts_share / test / sudotest.sh我正在尝试在Jenkins中使用sudo命令,因此我需要知道应该运行此命令的文件是哪个? - meakgoz
这是我电脑上的一个特定文件,我已经编辑了帖子以显示一个通用文件。 - s g
2个回答

14

我的/etc/sudoers文件中没有这两行内容,但即使我添加了允许我的用户使用命令的sudoers行,我仍然会收到“sudo:no tty present and no askpass program specified”错误提示。 - Eliezer Miron

4

您可以做的一件事是让Jenkins运行一个脚本,例如'run.sh',然后从这个脚本内部启动makefile,并确保makefile内没有sudo命令。

这有点麻烦,但至少您不会冒险更改安全设置。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接