如何以特定用户身份从 PHP 执行命令行应用程序?

DDD
发布: 2024-10-31 11:25:02
原创
629 人浏览过

How Can I Execute Command-Line Applications as a Specific User from PHP?

使用特定用户从 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!