我正在尝试运行以下命令
/usr/bin/ocr 1.pdf 1.xml
来自 Apache,但不幸的是,此命令仅适用于 ec2-user。因此,我尝试编辑我的 PHP 文件以使其像这样运行:
/usr/bin/sudo -u ec2-user /usr/bin/ocr 1.pdf 1.xml
但是我收到以下错误:
sudo: no tty present and no askpass program specified
因此我在 /etc/sudoers 中添加了以下行
apache ALL=(ALL) NOPASSWD: /usr/bin/sudo -u ec2-user /usr/bin/ocr
但我仍然遇到同样的错误。
唯一有效的方法是:
apache ALL=(ALL) NOPASSWD: ALL
但如果我是对的,它允许 apache 使用 sudo 运行任何命令,所以这是一个重大的安全漏洞。
你知道我怎样才能以一种干净的方式做到这一点吗?
答案1
只需这样做:
apache ALL=(ec2-user) NOPASSWD: /usr/bin/ocr