代码之家  ›  专栏  ›  技术社区  ›  clarkk

sudo没有访问权限,即使它是用sudo visudo添加的

  •  1
  • clarkk  · 技术社区  · 6 年前

    从运行程序时出现此错误 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-列表 数据/扫描凭证/17.pdf

    1 回复  |  直到 6 年前
        1
  •  1
  •   JP. Aulet    6 年前

    就像你说的那样 sudo visudo 对,我先看看 Tarun Lalwani 链接,特别是关于在你的sudoers中禁用需要tty的部分:

    Defaults    !requiretty
    

    尝试执行相同的命令,但使用flag -S 活跃的 你的命令 )

    -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");
    

    希望有帮助!