以 ec2-user 身份从 apache 用户运行命令

以 ec2-user 身份从 apache 用户运行命令

我正在尝试运行以下命令

/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

相关内容