无法在 php 中以 sudo 身份运行命令(CentOS 7)

无法在 php 中以 sudo 身份运行命令(CentOS 7)

我需要在 CentOS 7 中从 PHP 脚本运行 sudo 命令,但收到错误:

sudo:不存在 tty 且未指定 Askpass 程序

正如其他人所建议的那样,我已使用以下几行编辑了 sudoers 文件:

  1. 不需要 tty:

    Defaults:apache !requiretty

  2. 不为 apache 用户设置密码:

    apache  ALL=(root) NOPASSWD: /path/to/app, /path/to/app2

(我已经仔细检查这些路径是否正确)。我的错误依然存在。有什么想法吗?

答案1

此行不授予sudoapp 和 app2 权限:

apache  ALL=(root) NOPASSWD: /path/to/app /path/to/app2

上面一行的作用是授予 sudo 运行权限/path/to/app,前提是您还向它传递了一个参数/path/to/app2。要指定多个命令,需要用逗号分隔它们:

apache  ALL=(root) NOPASSWD: /path/to/app, /path/to/app2

相关内容