我正在尝试使用makefile编译一些源代码。在makefile中,有一堆命令需要作为sudo运行。

当我从终端编译源代码时,一切都很好,并且在第一次运行sudo命令等待密码时,make会暂停。一旦我输入密码,做简历和完成。

但是我希望能够在NetBeans中编译源代码。所以,我开始了一个项目,并向netbeans展示了在哪里可以找到源代码,但当我编译项目时,它给出了错误:

sudo: no tty present and no askpass program specified

第一次执行sudo命令时。

我在网上查了这个问题,我找到的所有解决方案都指向一件事:禁用这个用户的密码。因为这里讨论的用户是根用户。我不想那样做。

还有其他解决办法吗?


当前回答

Try:

对所有命令使用NOPASSWD行,我的意思是: NOPASSWD:所有 将这一行放在sudoers文件中的所有其他行之后。

这对我来说很有效(Ubuntu 14.04)。

其他回答

詹金斯:

echo '<your-password>' | sudo -S command

Eg:-

echo '******' | sudo -S service nginx restart

你可以使用掩码密码插件来隐藏你的密码

Try:

对所有命令使用NOPASSWD行,我的意思是: NOPASSWD:所有 将这一行放在sudoers文件中的所有其他行之后。

这对我来说很有效(Ubuntu 14.04)。

我不确定这是否是最近的更改,但我刚刚遇到了这个问题,sudo -S为我工作。

运行包含来自jenkins的sudo命令的shell脚本可能无法按预期运行。要解决这个问题,请遵循以下步骤

简单的步骤:

在基于ubuntu的系统中,运行" $ sudo visudo " 这将打开/etc/sudoers文件。 如果jenkins用户已经在该文件中,那么修改如下:

詹金斯

保存文件 重新开始你的jenkins工作 你不应该再看到错误信息:)

1 打开 /etc/sudoers

输入sudo vi /etc/sudoers.这将以编辑模式打开您的文件。

2添加/修改linux用户

查找Linux用户的条目。如果找到,则按以下方式修改或添加新行。

<USERNAME> ALL=(ALL) NOPASSWD: ALL

3保存并退出编辑模式