我需要在 CentOS 7 中从 PHP 脚本运行 sudo 命令,但收到错误:
sudo:不存在 tty 且未指定 Askpass 程序
正如其他人所建议的那样,我已使用以下几行编辑了 sudoers 文件:
不需要 tty:
Defaults:apache !requiretty
不为 apache 用户设置密码:
apache ALL=(root) NOPASSWD: /path/to/app, /path/to/app2
(我已经仔细检查这些路径是否正确)。我的错误依然存在。有什么想法吗?
答案1
此行不授予sudo
app 和 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