sudo:没有tty present,也没有askpass程序

我想通过BigTuna(持续集成工具)在远程服务器中添加一些文件,并给我一个错误消息。 任何人有任何想法如何将该文件添加到服务器?

sudo: no tty present and no askpass program specified 

这是由于/etc/sudoers上的'requiretty'选项造成的。 如果您有权访问它,则可以删除该选项。

如果没有,还有其他方法。 可能你正在做一些像ssh user@host sudo do_something 。 你可以尝试添加-t选项来通过ssh分配tty(所以它会是ssh -t user@host sudo do_something )。

您的应用程序在no tty中使用sudo命令,您可以通过编辑文件/ etc / sudoers来绕过此操作并注释以下行:

 Defaults requiretty 

命令sudo失败,因为它试图提示根密码,并没有伪tty分配(因为它是脚本的一部分)。

您需要以root身份login才能运行此命令,或者在/etc/sudoers (或: sudo visudo )中设置以下规则:

 # Members of the admin group may gain root privileges. %admin ALL=(ALL) NOPASSWD:ALL 

然后确保您的用户属于admin组(或wheel )。

理想情况下(更安全)是将root权限限制在可以指定为%admin ALL=(ALL) NOPASSWD:/path/to/program特定命令上%admin ALL=(ALL) NOPASSWD:/path/to/program