我正在尝试使用 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