如何从 PHP 执行 SUDO 所需的 Shell 脚本
在 PHP 中执行需要提升权限的 shell 脚本可能具有挑战性,因为shell_exec() 函数不支持密码提示。但是,有一些方法可以克服此限制并自动执行脚本。
解决方案:修改 Sudoers 文件
一种有效的解决方案是编辑 sudoers 文件(通常位于在 /etc/sudoers 中)并添加一条规则,允许在没有密码的情况下执行指定的脚本。为此,请按照以下步骤操作:
使用以下命令以 root 权限打开 sudoers 文件:
sudo visudo
添加一行采用以下格式:
www-data ALL=NOPASSWD: /path/to/script
其中 www-data 是 Web 服务器的用户名,/path/to/script 是需要提升权限的 bash 脚本的路径。
通过进行此修改,您可以有效地向 Web 服务器用户授予执行指定脚本的权限,而不会提示输入密码。
完成这些步骤后,您可以像往常一样使用 shell_exec() 函数从 PHP 调用 bash 脚本。该脚本将以提升的权限运行,没有任何密码提示。
以上是如何在没有密码提示的情况下从 PHP 运行需要 sudo 的 Shell 脚本?的详细内容。更多信息请关注PHP中文网其他相关文章!