Nir*_*raj 8 sudo tty not-root-user jenkins
我有一台构建机器,它的用户abc具有有限的 sudo 访问权限。当我查看源代码并运行我的构建脚本时,它工作正常。构建脚本包含的sudo调用没有说“sudo: no tty present and no askpass program specified”。但是当我在添加为奴隶的构建机器上对 Jenkins 做同样的事情时,它显示“sudo:没有 tty 存在并且没有指定 askpass 程序”。
我找到了一种解决方案,说要Default requiretty在文件中注释掉/etc/sudoers。但我无权访问此文件。
我怎样才能克服这个问题?
有两个选项,如您提到的那样注释掉Defaults requiretty/etc/sudoers 中的设置,或者使用伪 tty 分配 ( -t) 参数ssh。
在您的詹金斯脚本中尝试以下操作:
ssh -t 127.0.0.1 "sudo command"
尽管您必须ssh为自己配置预共享密钥并手动运行一次以将条目添加到已知主机,但也可以添加参数-o StrictHostKeyChecking=no来ssh忽略这一点。