从 PHP 调用需要 SUDO 的 Shell 脚本
运行需要提升权限的 shell 脚本(例如需要 SUDO 的脚本)在以下情况下可能会很困难:通过 PHP 的 shell_exec 函数调用它们。默认情况下,shell_exec 没有绕过密码提示所需的权限。
解决方案:修改 sudoers 文件
要解决此问题,您可以修改 sudoers文件(可通过 visudo 访问)授予 Web 服务器用户(例如 www-data)无需密码即可执行脚本的权限。以下是可以添加到 sudoers 文件中的示例规则:
www-data ALL=NOPASSWD: /path/to/script
此规则允许用户 www-data 运行脚本 /path/to/script 而无需提供密码。更新 sudoers 文件后,您可以像往常一样使用 shell_exec 从 PHP 调用脚本。
<?php $output = shell_exec('/path/to/script'); ?>
警告: 在 sudoers 文件中授予过多权限可能会损害系统安全。确保仅添加必要的规则并最小化授予权限的范围。
以上是如何在没有密码提示的情况下从 PHP 运行需要 SUDO 的 Shell 脚本?的详细内容。更多信息请关注PHP中文网其他相关文章!