使用特定用户从 PHP 执行命令行应用程序
要从以 www 用户身份运行的 PHP 脚本控制 Rhythmbox 播放,请执行以下操作:至关重要的是应用程序以目标用户而不是默认的 www 用户的身份执行。一种有效的解决方案是利用 sudo。
通过利用 sudo,PHP 脚本可以以提升的权限调用 Rhythmbox-client 命令。但是,为了确保仅允许特定命令,建议相应地配置 sudoers 文件。例如:
wwwuser ALL=/usr/bin/rhythmbox-client
通过将 sudo 调用限制为特定命令,您可以保护您的环境并防止 Apache 执行任意命令。
在 Rhythmbox-client 可能难以执行的情况下确定要控制的正确实例,考虑创建 bash 脚本来建立适当的环境并执行命令。下面的脚本举例说明了这种方法:
#! /bin/bash DBUS_ADDRESS=`grep -z DBUS_SESSION_BUS_ADDRESS /proc/*/environ 2> /dev/null| sed 's/DBUS/\nDBUS/g' | tail -n 1` if [ "x$DBUS_ADDRESS" != "x" ]; then export $DBUS_ADDRESS /usr/bin/rhythmbox-client --pause fi
通过将此脚本集成到 PHP 执行中,您可以授予 wwwuser 以有针对性的方式控制播放的能力,从而实现在拿起电话时暂停音乐和播放音乐的所需功能。挂断后恢复。
以上是如何以特定用户身份从 PHP 执行命令行应用程序?的详细内容。更多信息请关注PHP中文网其他相关文章!