sudo:没有 tty 存在并且没有指定 askpass 程序

sudo:没有 tty 存在并且没有指定 askpass 程序

我正在尝试使用 BigTuna(持续集成工具)将一些文件添加到远程服务器,但它给出了一条错误消息。有人知道如何将该文件添加到服务器吗?

sudo: no tty present and no askpass program specified

答案1

这是由于 上的“requiretty”选项造成的/etc/sudoers。如果您有权访问它,您可能只需删除该选项即可。

如果没有,还有其他方法。可能你正在做类似的事情ssh user@host sudo do_something。你可以尝试添加 -t 选项以通过 ssh 分配 tty(因此它将是ssh -t user@host sudo do_something)。

答案2

您的应用程序在无 tty 中使用 sudo 命令,您可以通过编辑文件 /etc/sudoers 并注释掉此行来绕过这个问题:


Defaults    requiretty

答案3

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

/etc/sudoers 您需要以 root 身份登录来运行此命令,或者在您的(或:)中设置以下规则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

相关内容