即使添加了sudo visudo,sudo也无法访问

时间:2018-06-14 15:12:44

标签: php sudo

www-data运行程序时出现此错误。

错误

  

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

但我已将以下内容添加到sudo visudo

www-data ALL = NOPASSWD: /var/bin/poppler-0.65.0/build/utils/pdfimages

路径/var/bin/poppler-0.65.0/build/utils/pdfimages是正确的..我已经从终端进行了测试。

命令

  

sudo /var/bin/poppler-0.65.0/build/utils/pdfimages -list   数据/ scan_voucher / 17.pdf

1 个答案:

答案 0 :(得分:1)

正如您所说的,已经正确设置了sudo visudo,我将首先看一下Tarun Lalwani链接,特别是有关禁用sudoers中要求tty的部分:

Defaults    !requiretty

尝试执行相同的命令,但带有标记 -S sudo -S yourcommand

  

-S(stdin)选项使sudo从以下位置读取密码:   标准输入而不是终端设备。

如果它对您不起作用,您可以尝试使用trick(似乎是这样)(来自here):

echo '' | sudo -S your_command

这将向第一个提示输入密码的用户发送一个空密码。

您如何从PHP执行此操作?尝试:

@exec("sudo /var/bin/poppler-0.65.0/build/utils/pdfimages -list data/scan_voucher/17.pdf");

希望有帮助!