解决Jenkins执行sudo命令时出现“sudo: no tty present and no askpass program specified”的错误
在Jenkins的使用过程中,如果在脚本中使用到sudo命令,有可能出现如下所示的错误:sudo: no tty present and no askpass program specified这是因为Jenkins服务器在执行sudo命令时的上下文有误,导致这个命令执行的异常。解决方案:在Jenkins宿主服务器上运行如下命令$ sudo visudo在文件的末尾加上一行jen
·
在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
更多推荐
已为社区贡献2条内容
所有评论(0)