您的位置:首页 > 其它

解决Jenkins执行sudo命令时出现“sudo: no tty present and no askpass program specified”的错误

2017-09-27 19:08 786 查看
在Jenkins的使用过程中,如果在脚本中使用到sudo命令,有可能出现如下所示的错误:

sudo: no tty present and no askpass program specified

这是因为Jenkins服务器在执行sudo命令时的上下文有误,导致这个命令执行的异常。

解决方案:

在Jenkins宿主服务器上运行如下命令

$ sudo visudo


在文件的末尾加上一行

jenkins ALL=(ALL) NOPASSWD: ALL


保存文件(注意保存的时候修改文件名,文件名后缀不要加上默认的.tmp,即可覆盖原文件)

Ctrl+O


退出编辑

Ctrl+X


重启Jenkins服务

$ /etc/init.d/jenkins restart


最后,重新执行构建任务,不会出现先前的错误。

PS:如果误操作修改了/etc/sudoers的权限来修改上述文件,则会导致如下所示的错误:

sudo :/etc/sudoers is world writable

sudo : no valid sudoers source found, quitting

sudo : unable to initialize poling plugin

这是Linux的一种保护机制。因此,如果出现上述误操作,则需要执行如下命令来解决:

$ pkexec chmod 0440 /etc/sudoers
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐